Nginx常用配置項是什么-創(chuàng)新互聯(lián)

小編給大家分享一下Nginx常用配置項是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)公司始終堅持【策劃先行,效果至上】的經(jīng)營理念,通過多達(dá)10多年累計超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的全網(wǎng)推廣解決方案,現(xiàn)已廣泛運用于各行各業(yè)的客戶,其中包括:木屋等企業(yè),備受客戶表揚。

常用配置項

在工作中,我們與 Nginx 打交道更多的是通過其配置文件來進行。那么掌握這些配置項各自的作用就很有必要了。(相關(guān)推薦:Linux教程)

首先, nginx.conf 的內(nèi)容通常是這樣的:

...              
...            #核心摸塊
events {        #事件模塊
   ...
}
http {     # http 模塊
    server {      # server塊
        location [PATTERN] {  # location塊
            ...
        }
        location [PATTERN] {
            ...
        }
    }
    server {
      ...
    }
}
mail {     # mail 模塊
     server {    # server塊
          ...
    }
}

我們依次看一下每個模塊一般有哪些配置項。

核心模塊

user admin; #配置用戶或者組
worker_processes 4; #允許生成的進程數(shù),默認(rèn)為1 
pid /nginx/pid/nginx.pid; #指定 nginx 進程運行文件存放地址 
error_log log/error.log debug; #錯誤日志路徑,級別

事件模塊

events { 
    accept_mutex on; #設(shè)置網(wǎng)路連接序列化,防止驚群現(xiàn)象發(fā)生,默認(rèn)為on 
    multi_accept on; #設(shè)置一個進程是否同時接受多個網(wǎng)絡(luò)連接,默認(rèn)為off 
    use epoll; #事件驅(qū)動模型select|poll|kqueue|epoll|resig
    worker_connections 1024; #大連接數(shù),默認(rèn)為512
}

http 模塊

http {
    include       mime.types;   #文件擴展名與文件類型映射表
    default_type  application/octet-stream; #默認(rèn)文件類型,默認(rèn)為text/plain
    access_log off; #取消服務(wù)日志    
    sendfile on;   #允許 sendfile 方式傳輸文件,默認(rèn)為off,可以在http塊,server塊,location塊
    sendfile_max_chunk 100k;  #每個進程每次調(diào)用傳輸數(shù)量不能大于設(shè)定的值,默認(rèn)為0,即不設(shè)上限
    keepalive_timeout 65;  #連接超時時間,默認(rèn)為75s,可以在http,server,location塊
    server 
    {
            keepalive_requests 120; #單連接請求上限次數(shù)
            listen 80; #監(jiān)聽端口
            server_name  127.0.0.1;   #監(jiān)聽地址      
            index index.html index.htm index.php;
            root your_path;  #根目錄
            location ~ \.php$
            {
                  fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
                  #fastcgi_pass 127.0.0.1:9000;
                  fastcgi_index index.php;
                  include fastcgi_params;
            }
    }
}

配置項解析

worker_processes

worker_processes 用來設(shè)置 Nginx 服務(wù)的進程數(shù)。該值推薦使用 CPU 內(nèi)核數(shù)。

worker_cpu_affinity*

worker\_cpu\_affinity 用來為每個進程分配CPU的工作內(nèi)核,參數(shù)有多個二進制值表示,每一組代表一個進程,每組中的每一位代表該進程使用CPU的情況,1代表使用,0代表不使用。所以我們使用 worker\_cpu\_affinity0001001001001000; 來讓進程分別綁定不同的核上。默認(rèn)情況下worker進程不綁定在任何一個CPU上。

worker_rlimit_nofile

設(shè)置毎個進程的大文件打開數(shù)。如果不設(shè)的話上限就是系統(tǒng)的 ulimit–n 的數(shù)字,一般為65535。

worker_connections

設(shè)置一個進程理論允許的大連接數(shù),理論上越大越好,但不可以超過 worker_rlimit_nofile 的值。

use epoll

設(shè)置事件驅(qū)動模型使用 epoll。epoll 是 Nginx 支持的高性能事件驅(qū)動庫之一。是公認(rèn)的非 常優(yōu)秀的事件驅(qū)動模型。

accept_mutex off

關(guān)閉網(wǎng)絡(luò)連接序列化,當(dāng)其設(shè)置為開啟的時候,將會對多個 Nginx 進程接受連接進行序列化,防止多個進程對連接的爭搶。當(dāng)服務(wù)器連接數(shù)不多時,開啟這個參數(shù)會讓負(fù)載有一定程度的降低。但是當(dāng)服務(wù)器的吞吐量很大時,為了效率,請關(guān)閉這個參數(shù);并且關(guān)閉這個參數(shù)的時候也可以讓請求在多個 worker 間的分配更均衡。所以我們設(shè)置 accept_mutex off;。

multi_accept on

設(shè)置一個進程可同時接受多個網(wǎng)絡(luò)連接。

Sendfile on

Sendfile 是 Linux2.0 以后的推出的一個系統(tǒng)調(diào)用,它能簡化網(wǎng)絡(luò)傳輸過程中的步驟,提高服務(wù)器性能。

不用 sendfile 的傳統(tǒng)網(wǎng)絡(luò)傳輸過程:

硬盤 >> kernel buffer >> user buffer >> kernel socket buffer >> 協(xié)議棧

用 sendfile() 來進行網(wǎng)絡(luò)傳輸?shù)倪^程:

硬盤 >> kernel buffer (快速拷貝到 kernelsocket buffer) >>協(xié)議棧

tcp_nopush on;

設(shè)置數(shù)據(jù)包會累積一下再一起傳輸,可以提高一些傳輸效率。 tcp_nopush 必須和 sendfile 搭配使用。

tcp_nodelay on;

小的數(shù)據(jù)包不等待直接傳輸。默認(rèn)為on。?看上去是和 tcp_nopush 相反的功能,但是兩邊都為 on 時 nginx 也可以平衡這兩個功能的使用。

keepalive_timeout

HTTP 連接的持續(xù)時間。設(shè)的太長會使無用的線程變的太多。這個根據(jù)服務(wù)器訪問數(shù)量、處理速度以及網(wǎng)絡(luò)狀況方面考慮。

send_timeout

設(shè)置 Nginx 服務(wù)器響應(yīng)客戶端的超時時間,這個超時時間只針對兩個客戶端和服務(wù)器建立連接后,某次活動之間的時間,如果這個時間后,客戶端沒有任何活動,Nginx 服務(wù)器將關(guān)閉連接。

gzip on

啟用 gzip,對響應(yīng)數(shù)據(jù)進行在線實時壓縮,減少數(shù)據(jù)傳輸量。

gzip_disable "msie6"

Nginx服務(wù)器在響應(yīng)這些種類的客戶端請求時,不使用 Gzip 功能緩存應(yīng)用數(shù)據(jù), gzip_disable “msie6”對IE6瀏覽器的數(shù)據(jù)不進行 GZIP 壓縮。

常用的配置項大致這些,對于不同的業(yè)務(wù)場景,有的需要額外的其他配置項,這里不做展開。

其他

http 配置里有 location 這一項,它是用來根據(jù)請求中的 uri 來為其匹配相應(yīng)的處理規(guī)則。

location 查找規(guī)則

location  = / {
  # 精確匹配 / ,主機名后面不能帶任何字符串
  [ config A ]
}
location  / {
  # 因為所有的地址都以 / 開頭,所以這條規(guī)則將匹配到所有請求
  # 但是正則和最長字符串會優(yōu)先匹配
  [ config B ]
}
location /documents/ {
  # 匹配任何以 /documents/ 開頭的地址,匹配符合以后,還要繼續(xù)往下搜索
  # 只有后面的正則表達(dá)式?jīng)]有匹配到時,這一條才會采用這一條
  [ config C ]
}
location ~ /documents/Abc {
  # 匹配任何以 /documents/Abc 開頭的地址,匹配符合以后,還要繼續(xù)往下搜索
  # 只有后面的正則表達(dá)式?jīng)]有匹配到時,這一條才會采用這一條
  [ config CC ]
}
location ^~ /images/ {
  # 匹配任何以 /images/ 開頭的地址,匹配符合以后,停止往下搜索正則,采用這一條
  [ config D ]
}
location ~* \.(gif|jpg|jpeg)$ {
  # 匹配所有以 gif,jpg或jpeg 結(jié)尾的請求
  # 然而,所有請求 /images/ 下的圖片會被 config D 處理,因為 ^~ 到達(dá)不了這一條正則
  [ config E ]
}
location /images/ {
  # 字符匹配到 /images/,繼續(xù)往下,會發(fā)現(xiàn) ^~ 存在
  [ config F ]
}
location /images/abc {
  # 最長字符匹配到 /images/abc,繼續(xù)往下,會發(fā)現(xiàn) ^~ 存在
  # F與G的放置順序是沒有關(guān)系的
  [ config G ]
}
location ~ /images/abc/ {
  # 只有去掉 config D 才有效:先最長匹配 config G 開頭的地址,繼續(xù)往下搜索,匹配到這一條正則,采用
    [ config H ]
}

正則查找優(yōu)先級從高到低依次如下:

“ = ” 開頭表示精確匹配,如 A 中只匹配根目錄結(jié)尾的請求,后面不能帶任何字符串。

“ ^~ ” 開頭表示uri以某個常規(guī)字符串開頭,不是正則匹配。

“ ~ ” 開頭表示區(qū)分大小寫的正則匹配。

“ ~* ”開頭表示不區(qū)分大小寫的正則匹配。

“ / ” 通用匹配, 如果沒有其它匹配,任何請求都會匹配到。

負(fù)載均衡配置

Nginx 的負(fù)載均衡需要用到 upstream 模塊,可通過以下配置來實現(xiàn):

upstream test-upstream {
    ip_hash; # 使用 ip_hash 算法分配
    server 192.168.1.1; # 要分配的 ip
    server 192.168.1.2;
}
server {
    location / {       
        proxy_pass http://test-upstream;
    }
}

上面的例子定義了一個 test-upstream 的負(fù)載均衡配置,通過 proxy_pass 反向代理指令將請求轉(zhuǎn)發(fā)給該模塊進行分配處理。

以上是Nginx常用配置項是什么的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

新聞名稱:Nginx常用配置項是什么-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://muchs.cn/article32/egjpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、搜索引擎優(yōu)化網(wǎng)站設(shè)計、App設(shè)計、外貿(mào)網(wǎng)站建設(shè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護公司