nginx常用模塊

来源:https://www.cnblogs.com/walk1314/archive/2018/07/19/9327703.html
-Advertisement-
Play Games

Nginx Nginx是一款面向性能設計的HTTP伺服器,相較於Apache、lighttpd具有占有記憶體少,穩定性高等優勢,整體採用模塊化設計,有豐富的模塊庫和第三方模塊庫,配置靈活。 在Linux操作系統下,Nginx使用epoll事件模型,在OpenBSD或FreeBSD操作系統上採用類似於e ...


Nginx

Nginx是一款面向性能設計的HTTP伺服器,相較於Apache、lighttpd具有占有記憶體少,穩定性高等優勢,整體採用模塊化設計,有豐富的模塊庫和第三方模塊庫,配置靈活。 在Linux操作系統下,Nginx使用epoll事件模型,在OpenBSD或FreeBSD操作系統上採用類似於epoll的高效事件模型kqueue。Nginx在官方測試的結果中,能夠支持五萬個並行連接,而在實際的運作中,可以支持二萬至四萬個並行連接。Nginx除了是一個輕量級的非同步框架的Web伺服器,還能用作反向代理和負載平衡器。
Nginx工作時有一個主線程和幾個工作線程,主線程的目的是載入和驗證配置文件、維護工作線程;工作線程用來處理實際的請求,其數量可配置,也可以自動調整為伺服器CPU數量。Nginx主配置文件: /etc/nginx/nginx.conf,及/etc/nginx/conf.d/*.conf。Nginx由不同的模塊組成,這些模塊由配置文件中指定的指令控制。

常見模塊及配置指令

Core functionality

主配置文件/etc/nginx/nginx.conf格式:

main block
event {
    ...
}        
http {
    ...
    server {
        ...
    }
    server {
        ...
        listen
        server_name
        root
        location /uri/ {
            ...
            if CONDITION {
                ...
            }
        }
    }
}

其中 main block 配置段常見的配置指令:

分類:
    正常運行必備的配置
    優化性能相關的配置
    用於調試及定位問題相關的配置
    事件驅動相關的配置
正常運行必備的配置:
1、user USERNAME [GROUP];
    指定worker processes所屬用戶及用戶組
2、pid /PATH/TO/PID_FILE;
    指定存儲nginx主進程進程號碼的文件路徑
3、include file | mask;
    指明包含進來的其它配置文件片斷
4、load_module file;
    指明要裝載的動態模塊
性能優化相關的配置:
1、worker_processes number | auto;
    worker進程的數量:通常應該等於小於當前主機的cpu的物理核心數
    auto:當前主機物理CPU核心數
2、worker_cpu_affinity cpumask ...; 或 worker_cpu_affinity auto [cpumask];
    綁定CPU核心與worker進程,預設不綁定
    cpumask示例:8核
        00000001:0號CPU
        00000010:1號CPU
3、worker_priority number;
    指定worker進程的nice值,設定worker進程優先順序;[-20,20]
4、worker_rlimit_nofile number;
    worker進程所能夠打開的文件數量上限
調試、定位問題:
1、daemon on|off;    
    是否以守護進程方式運行Nignx
2、master_process on|off;
    是否以master/worker模型運行nginx;預設為on
3、error_log file [level];
    定義錯誤日誌記錄級別
事件驅動相關的配置:
events {
    ...
}
1、worker_connections number;
    每個worker進程所能夠打開的最大併發連接數數量
    啟動nginx後最大併發連接數量: worker_processes * worker_connections
2、use method;
    指明併發連接請求的處理方法,不指定時nginx會自動選擇最高效的處理方法
    use epoll;
3、accept_mutex on | off;
    處理新的連接請求的方法:on意味著由各worker輪流處理新請求,Off意味著每個新請求的到達都會通知所有的worker進程

ngx_http_core_module

配置格式:

http {
    ... ...
    server {
        ...
        server_name
        root
        location [OPERATOR] /uri/ {
        ...
        }
    }
    server {
        ...
    }
}

常見配置指令:

與套接字相關的配置:
1、server { ... }
虛擬主機配置欄位
安全上下文:http
示例:
    server {
        listen address[:PORT]|PORT;
        server_name SERVER_NAME;
        root /PATH/TO/DOCUMENT_ROOT;                            
    }
2、listen address[:port] [default_server] [ssl] [http2|spdy]  [backlog=number] [rcvbuf=size] [sndbuf=size];
指定監聽的地址和埠等,常用選項:
    default_server:設定為預設虛擬主機
    ssl:限制僅能夠通過ssl連接提供服務
    backlog=number:後援隊列長度
    rcvbuf=size:接收緩衝區大小
    sndbuf=size:發送緩衝區大小
安全上下文:server
示例:
    # 監聽指定的IP及埠
    listen 192.168.4.119:80;
    # 監聽指定埠只能通過SSL
    listen 443 ssl;
3、server_name name ...;
指明虛擬主機的主機名稱,後可跟多個由空白字元分隔的主機名稱;
安全上下文:server
示例:
    # 支持*通配任意長度的任意字元
    server_name *.test.com www.test.*;
    # 支持~起始的字元做正則表達式模式匹配
    server_name ~^www\d+\.test\.com$
4、tcp_nodelay on | off;
在keepalived模式下的連接是否啟用tcp_nodelay選項
安全上下文:http,server,location
5、tcp_nopush on|off;
在sendfile模式下,是否啟用選項
安全上下文:http,server,location    
6、sendfile on | off;
是否啟用sendfile功能
安全上下文:http,server,location,if in location
定義路徑相關的配置:
7、root path; 
設置web資源路徑映射,用於指明用戶請求的url所對應的本地文件系統上的文檔所在目錄路徑
安全上下文:http,server,location,if in location
8、location [ = | ~ | ~* | ^~ ] uri { ... }
設置請求的uri對應的資源。在一個server中location配置段可存在多個,用於實現從uri到文件系統的路徑映射;ngnix會根據用戶請求的uri來檢查定義的所有location,並找出一個最佳匹配,而後應用其配置。其中:
    =:對uri做精確匹配
    ^~:對uri的左半部分做匹配檢查,不區分字元大小寫
    ~:對uri做正則表達式模式匹配,區分字元大小寫
    ~*:對uri做正則表達式模式匹配,不區分字元大小寫
    不帶符號:匹配起始於此uri的所有的url
    @:定義位置名稱,實現資源跳轉
匹配優先順序:=, ^~, ~/~*,不帶符號;
安全上下文:server,location
示例:
server {
    listen 192.168.4.119:80;
    server_name www.test.com;
    root /data/web;    #設置虛擬主機的web根目錄
    # = 精確匹配/data/web/test目錄下的test.html文件
    location = /test.html {
        root /data/web/test;  #指定location的web根目錄
    }
    # ~ 正則匹配/data/web/aaa目錄下帶有AAA字元串的文件(區分大小寫)
    location ~ .*AAA.* {
        root /data/web/aaa;
    }
    # ~* 正則匹配/data/web/bbb目錄下帶有bbb字元串的文件(不區分大小寫)
    location ~* .*bbb.* {
        root /data/web/bbb;
    }
    # ^~ 匹配/data/web/www目錄下的文件
    location ^~ /www {
        root /data/web/www
    }
}
9、alias path;
定義路徑別名,文檔映射的另一種機制
安全上下文:location
註意:root指令和alias指令的意義不同,並且不能同時用在同一個location中。
    (1) root,給定的路徑對應於location中的/uri/左側的/
    (2) alias,給定的路徑對應於location中的/uri/右側的/
10、error_page code ... [=[response]] uri;
指定錯誤的uri路徑
安全上下文:http,server,location,if in location
示例:
    #當網頁的狀態碼為404時,跳轉到指定的404.html頁面
    error_page 404    /404.html;
11、try_files file ... uri;
如果指定路徑下文件不存在,則跳轉到指定的uri或者返回指定狀態碼。
安全上下文:server,location
示例:
location ~ .*test.* {
        try_files test.html /404.html;
}
#嘗試打開test.html,如果沒有此文件,則返回狀態碼500
location = /test.html {
        try_files test.html =500;
}
定義客戶端請求的相關配置
12、keepalive_timeout timeout [header_timeout];
設定保持連接的超時時長,0表示禁止長連接;預設為75s
安全上下文:http,server,location
13、keepalive_requests number;
在一次長連接上所允許請求的資源的最大數量,預設為100
安全上下文:http,server,location
14、keepalive_disable none | browser ...;
對哪種瀏覽器禁用長連接
安全上下文:http,server,location
15、send_timeout time;
向客戶端發送響應報文的超時時長,此處指兩次連續寫操作之間的間隔時長
安全上下文:http,server,location
16、client_body_buffer_size size;
用於接收客戶端請求報文的body部分的緩衝區大小,預設為16k;超出此大小時,其將被暫存到磁碟上的由client_body_temp_path指令所定義的位置
安全上下文:http,server,location
17、client_body_temp_path path [level1 [level2 [level3]]];
設定用於存儲客戶端請求報文的body部分的臨時存儲路徑及子目錄結構和數量,其中level表示存儲目錄的數量,用16進位表示
安全上下文:http,server,location
示例:
    client_body_temp_path /var/tmp/client_body  2 1 1
        2:表示用2位16進位數字表示一級子目錄:00-ff,共256個一級子目錄
        1:表示用1位16進位數字表示二級子目錄;0-f,共16個二級子目錄
        1:表示用1位16進數制字表示三級子目錄:0-f,共16個二級子目錄
對客戶端進行限制的相關配置:
18、limit_rate rate;
限制響應給客戶端的傳輸速率,單位是bytes/second,0表示無限制
安全上下文:http,server,location,if in location
19、limit_except method ... { ... }
限制客戶端除指定的請求方法之外不能訪問伺服器
安全上下文:location
示例:
    # 限制192.168.4.0/24的客戶端只能通過GET請求
    limit_except GET {
        allow 192.168.4.0/24;
        deny  all;
    }
文件操作優化的配置
20、aio on|off | threads[=pool];
是否啟用aio功能
安全上下文:http,server,location
21、directio size | off;
當文件大於等於給定的大小時啟用O_DIRECT標記,例如directio 4m;
安全上下文:http,server,location
22、open_file_cache off; 或 open_file_cache max=N [inactive=time];
    nginx可以緩存以下三種信息:
        (1) 文件的描述符、文件大小和最近一次的修改時間
        (2) 打開的目錄結構
        (3) 沒有找到的或者沒有許可權訪問的文件的相關信息
    max=N:可緩存的緩存項上限;達到上限後會使用LRU演算法實現緩存管理
    inactive=time:緩存項的非活動時長,在指定的時長內未被命中的或命中的次數少於open_file_cache_min_uses所指定的次數的緩存項即為非活動項
安全上下文:http,server,location
23、open_file_cache_valid time;
緩存項有效性的檢查頻率;預設為60s;
安全上下文:http,server,location
24、open_file_cache_min_uses number;
在open_file_cache指令的inactive參數指定的時長內,至少應該被命中多少次方可被歸類為活動項,預設為1
安全上下文:http,server,location
25、open_file_cache_errors on | off;
是否緩存查找時發生錯誤的文件一類的信息,預設為off
安全上下文:http,server,location

ngx_http_index_module

此模塊用於實現基於IP的訪問控制功能。
index
file...; 定義預設的web網頁資源,預設為index index.html 安全上下文:http,server,location 示例: location / { index index.html; }

ngx_http_access_module

allow|deny address|CIDR|unix:|all;
允許或拒絕訪問的Ip網段,匹配順序為從上往下匹配。
安全上下文: http,server,location,limit_except
示例:
    location / {
        deny  192.168.4.1;
        allow 192.168.4.0/24;
        deny  all;
    }

ngx_http_auth_basic_module

此模塊用於實現基於用戶的訪問控制功能。

1、auth_basic string|off
配置auth_basic提示的信息
安全上下文:http,server,location,limit_except
2、auth_basic_user_file file;
指定保存用戶賬戶密碼的file文件,該文件由htpasswd生成
安全上下文:http,server,location,limit_except
示例:
    #生成保存認證用戶信息的文件
    [root@nginx ~]# htpasswd -c /etc/nginx/nginxpasswd test1
    New password: 
    Re-type new password: 
    Adding password for user test1
    [root@nginx ~]# htpasswd /etc/nginx/nginxpasswd test2
    New password: 
    Re-type new password: 
    Adding password for user test2

    #添加nginxbasic認證配置
    location ^~ /auth {
        auth_basic "nginx auth_basic";
        auth_basic_user_file /etc/nginx/nginxpasswd;
    }

ngx_http_stub_status_module

此模塊用於輸出nginx的基本狀態信息。

stub_status;
用於輸出nginx的基本狀態信息
安全上下文:server,location。
示例:
    location /status {
        stub_status;
    }
  訪問http://192.168.4.119/status可獲取nginx伺服器的狀態信息,如下:
    Active connections: 291 
    server accepts handled requests
        16630948 16630948 31070465 
    Reading: 6 Writing: 179 Waiting: 106     
  各項釋義:
  Active connections: 活動狀態的連接數;
  accepts:已經接受的客戶端請求的總數;
  handled:已經處理完成的客戶端請求的總數;
  requests:客戶端發來的總的請求數;
  Reading:處於讀取客戶端請求報文首部的連接的連接數;
  Writing:處於向客戶端發送響應報文過程中的連接數;
  Waiting:處於等待客戶端發出請求的空閑連接數

ngx_http_log_module

1、access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
  access_log off;
用於設置訪問日誌文件路徑,格式及相關的緩衝的配置。預設情況下,access_log預定義了combined的日誌格式,用戶可在format中直接調用。
安全上下文:http,server,location,if in location,limit_except
示例:
    #將日誌以combined格式記錄在指定路徑
    access_log  /var/log/nginx/access.log  combined;
    #將訪問nginx的status的頁面以指定的test格式存放在指定的路徑中
    location /status {
        stub_status;
        access_log /data/log/access_log test;
    }
2、log_format name [escape=default|json|none] string ...;
在string中可使用nginx核心模塊及其它模塊內嵌的變數來生成log日誌,預設日誌的格式為combined格式。
安全上下文:http
示例:
    #定義名為test的日誌格式
    log_format test '$remote_addr    $status    "$request"'
3、open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
  open_log_file_cache off;
用於緩存各日誌文件相關的元數據信息。
安全上下文:http,server,location
各項釋義:
    max:緩存的最大文件描述符數量;
    min_uses:在inactive指定的時長內訪問大於等於此值方可被當作活動項,預設為1
    inactive:非活動時長;
    valid:驗正緩存中各緩存項是否為活動項的時間間隔,預設為60s
示例:
    open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;

ngx_http_gzip_module

此模塊能夠使用gzip壓縮響應報文的大小,通過能夠將需要傳輸的數據減少一半或者更多

1、gzip on|off;
是否開啟壓縮響應
安全上下文:http,server,location,if in location
2、gzip_comp_level level;
設置壓縮響應的等級,從1到9,預設為1
安全上下文:http,server,location
3、gzip_disable regex ...;
根據正則表達式匹配瀏覽器類型來關閉響應壓縮
安全上下文:http,server,location
4、gzip_min_length length;
指定被壓縮的響應報文的最小長度,預設為20個位元組
安全上下文:http,server,location
5、gzip_buffers number size;
設置壓縮響應報文時的緩衝區數量及每個緩衝區大小
安全上下文:http,server,location
6、gzip_proxied off|expired|no-cache|no-store|private|no_last_modified|no_etag|auth|any ...;
nginx作為代理伺服器接收到從被代理伺服器發送的響應報文後,在何種條件下啟用壓縮功能,預設為off
釋義:
off:對代理的請求不啟用;
no-cache,no-store,private:表示從被代理伺服器收到的響應報文首部的Cache-Control的值為此三者中任何一個,則啟用壓縮功能
安全上下文:http,server,location
7、gzip_types mime-type ...;
壓縮過濾器,僅對此處設定的MIME類型的內容啟用壓縮功能,預設壓縮text/html
安全上下文:http,server,location
示例:
    gzip on;
    gzip_comp_level 6;
    gzip_min_length 64;
    gzip_proxied any;
    gzip_types text/xml text/css  application/javascript;

ngx_http_ssl_module

1、ssl on|off;
在虛擬伺服器上啟動https協議
安全上下文:http,server
2、ssl_certificate file;
指定當前https協議使用的SSL證書,證書需為pem格式。
安全上下文: http,server
3、ssl_certificate_key file;
指定當前https協議所使用證書的私鑰文件
安全上下文: http,server
4、ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2];
指定支持的ssl協議的版本,預設為後三個
安全上下文: http,server
5、ssl_session_cache off|none|[builtin[:size]] [shared:NAME:size];
用於設置存儲ssl會話參數的緩存類型及大小
釋義:
builtin[:size]:使用OpenSSL內建的緩存,此緩存為每worker進程私有;
shared:NAME:size:在各worker之間使用一個共用的緩存
安全上下文: http,server
6、ssl_session_timeout time;
設置客戶端可復用緩存的會話參數的時間
安全上下文: http,server
示例:
    server {
        listen 192.168.0.83:443 ssl;
        server_name www2.abc.com;
        root /data/https;
        ssl on;
        ssl_certificate /etc/nginx/ssl/nginx.crt;
        ssl_certificate_key /etc/nginx/ssl/nginx.key;
        ssl_session_cache shared:SSLCACHE:20m;
    }

ngx_http_rewrite_module

此模塊用於將用戶請求的URI基於regex所描述的模式進行檢查,而後完成替換,使得用戶訪問替換後的URI

1、rewrite regex replacement [flag];
此指令將用戶請求的URI基於regex所描述的模式進行檢查,匹配到時將其替換為replacement指定的新的URI。如果replacement是以http://或https://開頭,則替換結果會直接以重定向返回給客戶端。另外如果在同一級配置塊中存在多個rewrite規則,則會自下而下逐個檢查;被某條件規則替換完成後,會新起一輪的替換檢查,因此隱含有迴圈機制;[flag]所表示的標誌位用於控制此迴圈機制,包括以下標誌:
    last:重寫完成後停止對當前URI在當前location中後續的其他重寫操作,而後對新的URI啟動新一輪重寫檢查,即提前重啟新一輪的重寫迴圈;
    break:重寫完成後停止對當前URI在當期location中的後續的其他重寫操作,而後直接跳轉至重寫規則配置塊之後的其他配置,結束重寫迴圈;
    redirect:重寫完成後以臨時重定向方式直接返回重寫後生成的新URI給客戶端,由客戶端重新發起請求;此flag所重寫的URI不能以http://或https://開頭;
    permanent:重寫完成後以永久重定向的方式直接返回重寫後生成的新的URI給客戶端,由客戶端重新發起請求
安全上下文:server,location,if
示例:
    location /users/ {
        rewrite ^/users/profile/(.*)$ /show?user=$1? break;
    }
2、return code [text];
  return code URL;
  return URL;
停止處理請求,並返回指定的文本信息、狀態碼或URL給客戶端
安全上下文:server,location,if
示例:
    location ~ .*test.* {
        return 404 "test";
    }
3、rewrite_log on | off;
是否開啟重寫日誌
安全上下文:http,server,location,if
4、if (condition) { ... };
條件判斷配置段,當滿足條件時,執行配置段中的指令
其中condition中的比較符有以下幾種:
    字元串比較操作符:
        =:匹配
        !=:不匹配
        ~:模式匹配,區分字元大小寫;
        !~:模式不匹配,區分字元大小寫;
        ~*:模式匹配,不區分字元大小寫;
        !~*:模式不匹配,不區分字元大小寫
    文件及目錄存在性判斷:
        -e,!-e:文件是否存在;
        -f,!-f:文件是否為普通文件;
        -d,!-d:文件是否為目錄;
        -x,!-x:文件是否可執行
安全上下文:server,location
示例:
    if ($http_user_agent ~ MSIE) {
        rewrite ^(.*)$ /msie/$1 break;
    }
5、set $variable value;
自定義用戶變數
安全上下文:server,location,if
示例:
    set $newindex "index.html";
    if ($host = "www.sina.com") {
        set $newindex "index.php";
    }
    index $newindex;

ngx_http_referer_module

valid_referers none|blocked|server_names|string ...;
定義referer首部的合法可用值
釋義:
none:請求報文首部沒有referer首部;
blocked:請求報文的referer首部沒有值;
server_names:參數,其可以有值作為主機名或主機名模式;
    arbitrary_string:直接字元串,但可使用*作通配符
    regular_expression:被指定的正則表達式模式匹配到的字元串,要使用~開頭,如 ~.*\.test\.com
安全上下文: server,location
示例:
    valid_referers none blocked server_names *.teest.com tesst.* ~\.test\.;
    if($invalid_referer) {
        return http://www.test.com/test.jpg;
    }


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 字元編碼: utf-16(be):頭部-->FE FF (00 41 4E 2D) 2個位元組表示一個字元 順序表示 (00 41)表示'A' 'A’的ASCII碼為41 uft-16(le): 頭部-->FF FE (41 00 2D 4E) 2個位元組表示一個字元 反序表示 (41 00) 表示'A ...
  • linux結構目錄 中有一句話叫做:一切皆文件。 下麵來瞭解一下這些文件。 首先看一下 根目錄下結構: :存放二進位可執行文件,一般常用命令都存放在這裡。 :存放系統啟動時的一些引導文件。 :存放設備文件,一般時用於掛載光碟機,訪問文件相當於訪問光碟機。 :存放系統配置文件。 :預設的用戶的家目錄,存放 ...
  • 3.1 用戶配置文件和密碼配置文件 3.2 用戶組管理 3.3 用戶管理 1、用戶配置文件和密碼配置文件 /etc/passwd配置文件 每個用戶一行,用冒號分隔為七段 分別表示: /etc/shadow配置文件 與/etc/passwd配置文件一一對應 每個用戶一行,用冒號分隔為八段 分別表示: ...
  • Linux集群 Linux集群(cluster)就是一組Linux電腦,它們作為一個整體向用戶提供一組網路資源,這些單個的電腦系統就是集群的節點(node)。一個理想的集群,用戶是不會意識到集群系統底層的節點的,在他們看來,集群是一個系統,而非多個電腦系統,並且集群系統的管理員可以隨意增加和刪 ...
  • 最近系統伺服器進行搬遷,又恰好需要使用定時任務運行程式,而我的程式主要使用PHP寫的,然後總結了下定時任務的用法,但是在使用過程中遇到不少問題,例如no crontab for root等問題。 ...
  • 1/什麼是NginxNginx("enginex")是一個高性能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP代理伺服器,在高連接併發的情況下Nginx是Apache伺服器不錯的替代品.其特點是占有記憶體少,併發能力強,事實上nginx的併發能力確實在同類型的網頁伺服器中表現較好.目 ...
  • 本文介紹使用 _OpenVPN_ 在 _CentOS_ 和 _Ubuntu_ 上搭建基本的VPN服務的方法. 生成所需密鑰和證書 _OpenVPN_ 使用 _Easy RSA_ 來管理PKI所需要的密鑰和證書. _Easy RSA_ 現在有2和3兩個主要版本, 使用方式略有不同. 下麵分別介紹用法. ...
  • 有關於centos7獲取IP地址的方法主要有兩種,1:動態獲取ip;2:設置靜態IP地址 在配置網路之前我們先要知道centos的網卡名稱是什麼,centos7不再使用ifconfig命令,可通過命令 IP addr查看,如圖,可以看到我的網卡名為ens32,從中也可以看到是沒有IP地址的 1、動態 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...