目錄
- 1、概述
- 2、nginx.conf
- 1)配置文件位置
- 2)worker_processes
- 3)events
- 4)include
- 5)sendfile 和 tcp_nopush
- 6)keepalive_timeout
- 7)gzip
- 8)server
- 9)location的匹配規(guī)則詳解
- 3、綜述
1、概述
今天來詳解一下Nginx的配置文件,以及給出一些配置建議,希望能對大家有所幫助。
2、nginx.conf
1)配置文件位置
nginx 安裝目錄的 conf 文件夾下,例如:/usr/local/nginx/conf/nginx.conf 。
也可以將配置文件放置在任意位置,在啟動Nginx時指定配置文件的位置,例如:./nginx -c /home/nginx.conf
2)worker_processes
設(shè)置 worker 的數(shù)量,Nginx的進程模型采用的是master、worker模式,一個master負責(zé)協(xié)調(diào),多個worker負責(zé)與客戶端交互。
此處設(shè)置為 auto 即可。
3)events
設(shè)置使用的模型和每個 worker 的連接數(shù)。
Linux操作系統(tǒng)中模型建議使用 epoll。
worker 的連接數(shù)通常設(shè)置為 10240 即可,當(dāng)然如果硬件資源非常好,也可以適當(dāng)加大。
4)include
包含另一個文件的內(nèi)容,將另一個文件的內(nèi)容放在標(biāo)記處。
多個文件可以寫多個 include,也可以使用通配符匹配多個文件。
5)sendfile 和 tcp_nopush
sendfile: 設(shè)置文件高效傳輸是否開啟,默認開啟。
tcp_nopush:必須是 sendfile 值為 on 時才有效,當(dāng) tcp_nopush 設(shè)置為 on 代表當(dāng)數(shù)據(jù)包累計到一定大小時再發(fā)送,有助于提升文件傳輸效率。
建議都設(shè)置為 on。
6)keepalive_timeout
客戶端連接服務(wù)器的超時時間,在連接斷開前,客戶端再次與服務(wù)器進行交互,可復(fù)用此連接,不需要重新建立一個連接,減少了資源的開銷。
設(shè)置為 0,則表示交互完立即斷開連接。此值保持默認即可。
7)gzip
設(shè)置為 on,代表會先將數(shù)據(jù)壓縮再進行傳輸,這樣做會增加傳輸?shù)男剩?jié)省帶寬,但會影響服務(wù)器CPU的性能。
開啟此配置,還需要配置一些額外的屬性。
此處可以權(quán)衡是節(jié)省帶寬還是提高CPU性能,建議開啟,根據(jù)實際情況配置。
復(fù)制代碼 代碼如下:
gzip on;gzip_min_length 512; # 限制最小壓縮,單位字節(jié),小于該值則不會壓縮gzip_comp_level 5; # 壓縮的級別,值為1到9,級別越高壓縮的比例越大,cpu消耗越多gzip_types text/plain application/javascript text/css image/jpeg image/gif image/png application/json; # 需要壓縮的文件類型
8)server
一個server塊就是一個虛擬的服務(wù)。
在server塊中可以指定虛擬服務(wù)的 端口、服務(wù)名、路由規(guī)則等信息。
server可以有多個。
一個server下,location也可以有多個。
server {
listen 90; # 端口
server_name localhost; # 服務(wù)名,可以是IP地址或者域名,當(dāng)端口相同時,會根據(jù)服務(wù)名選擇走哪個路由規(guī)則
location / { # 根路徑路由規(guī)則
root html; # 對應(yīng)nginx安裝目標(biāo)下的html文件夾,也可以設(shè)置為絕對路徑,例如:root /home/html;
index hello.html; # 指定默認首頁為 hello.html
}
location /hello { root /home/hello; # index 省略,代表沒有默認頁 }
error_page 500 502 503 504 /50x.html; # 指定這些狀態(tài)碼跳轉(zhuǎn)的錯誤頁
location = /50x.html {
root html;
}
}
9)location的匹配規(guī)則詳解
server塊中包含了location塊,location塊在一個server下可以有多個,主要是配置請求的路由規(guī)則。
nginx根據(jù)請求的資源路徑,與location塊進行匹配,然后根據(jù)location的配置對路由進行轉(zhuǎn)發(fā)。
location支撐多種匹配規(guī)則,下面就具體說一說。
精確匹配
location / { # 根路徑路由規(guī)則
root html; # 對應(yīng)nginx安裝目標(biāo)下的html文件夾,也可以設(shè)置為絕對路徑,例如:root /home/html;
index hello.html; # 指定默認首頁為 hello.html
}
location /hello {
root /home/hello;
# index 省略,代表沒有默認頁
}
正則表達式匹配
location ~* \.(GIF|PNG|jpg|bmp|jpeg) { # *代表不區(qū)分大小寫
root /home/img;
}
匹配以某個路徑開頭的請求
location ^~ /server/page/ {
root /home/page;
}
3、綜述
今天對Nginx配置做了詳細講解,一些Nginx的高級應(yīng)用,會在后面單獨介紹。希望大家多多溝通交流,共同成長。
到此這篇關(guān)于Nginx配置文件詳解以及優(yōu)化的文章就介紹到這了,更多相關(guān)Nginx配置文件優(yōu)化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!