Nginx配置文件詳解以及優(yōu)化建議指南
1、概述
今天來(lái)詳解一下Nginx的配置文件,以及給出一些配置建議,希望能對(duì)大家有所幫助。
2、nginx.conf
1)配置文件位置
nginx 安裝目錄的 conf 文件夾下,例如:/usr/local/nginx/conf/nginx.conf 。
也可以將配置文件放置在任意位置,在啟動(dòng)Nginx時(shí)指定配置文件的位置,例如:./nginx -c /home/nginx.conf
2)worker_processes
設(shè)置 worker 的數(shù)量,Nginx的進(jìn)程模型采用的是master、worker模式,一個(gè)master負(fù)責(zé)協(xié)調(diào),多個(gè)worker負(fù)責(zé)與客戶(hù)端交互。
此處設(shè)置為 auto 即可。
3)events
設(shè)置使用的模型和每個(gè) worker 的連接數(shù)。
Linux操作系統(tǒng)中模型建議使用 epoll。
worker 的連接數(shù)通常設(shè)置為 10240 即可,當(dāng)然如果硬件資源非常好,也可以適當(dāng)加大。
4)include
包含另一個(gè)文件的內(nèi)容,將另一個(gè)文件的內(nèi)容放在標(biāo)記處。
多個(gè)文件可以寫(xiě)多個(gè) include,也可以使用通配符匹配多個(gè)文件。
5)sendfile 和 tcp_nopush
sendfile: 設(shè)置文件高效傳輸是否開(kāi)啟,默認(rèn)開(kāi)啟。
tcp_nopush:必須是 sendfile 值為 on 時(shí)才有效,當(dāng) tcp_nopush 設(shè)置為 on 代表當(dāng)數(shù)據(jù)包累計(jì)到一定大小時(shí)再發(fā)送,有助于提升文件傳輸效率。
建議都設(shè)置為 on。
6)keepalive_timeout
客戶(hù)端連接服務(wù)器的超時(shí)時(shí)間,在連接斷開(kāi)前,客戶(hù)端再次與服務(wù)器進(jìn)行交互,可復(fù)用此連接,不需要重新建立一個(gè)連接,減少了資源的開(kāi)銷(xiāo)。
設(shè)置為 0,則表示交互完立即斷開(kāi)連接。此值保持默認(rèn)即可。
7)gzip
設(shè)置為 on,代表會(huì)先將數(shù)據(jù)壓縮再進(jìn)行傳輸,這樣做會(huì)增加傳輸?shù)男?,?jié)省帶寬,但會(huì)影響服務(wù)器CPU的性能。
開(kāi)啟此配置,還需要配置一些額外的屬性。
此處可以權(quán)衡是節(jié)省帶寬還是提高CPU性能,建議開(kāi)啟,根據(jù)實(shí)際情況配置。
8)server
一個(gè)server塊就是一個(gè)虛擬的服務(wù)。
在server塊中可以指定虛擬服務(wù)的 端口、服務(wù)名、路由規(guī)則等信息。
server可以有多個(gè)。
一個(gè)server下,location也可以有多個(gè)。
server { listen 90; # 端口 server_name localhost; # 服務(wù)名,可以是IP地址或者域名,當(dāng)端口相同時(shí),會(huì)根據(jù)服務(wù)名選擇走哪個(gè)路由規(guī)則 location / { # 根路徑路由規(guī)則 root html; # 對(duì)應(yīng)nginx安裝目標(biāo)下的html文件夾,也可以設(shè)置為絕對(duì)路徑,例如:root /home/html; index hello.html; # 指定默認(rèn)首頁(yè)為 hello.html } location /hello { root /home/hello; # index 省略,代表沒(méi)有默認(rèn)頁(yè) } error_page 500 502 503 504 /50x.html; # 指定這些狀態(tài)碼跳轉(zhuǎn)的錯(cuò)誤頁(yè) location = /50x.html { root html; } }
9)location的匹配規(guī)則詳解
server塊中包含了location塊,location塊在一個(gè)server下可以有多個(gè),主要是配置請(qǐng)求的路由規(guī)則。
nginx根據(jù)請(qǐng)求的資源路徑,與location塊進(jìn)行匹配,然后根據(jù)location的配置對(duì)路由進(jìn)行轉(zhuǎn)發(fā)。
location支撐多種匹配規(guī)則,下面就具體說(shuō)一說(shuō)。
精確匹配
location / { # 根路徑路由規(guī)則 root html; # 對(duì)應(yīng)nginx安裝目標(biāo)下的html文件夾,也可以設(shè)置為絕對(duì)路徑,例如:root /home/html; index hello.html; # 指定默認(rèn)首頁(yè)為 hello.html } location /hello { root /home/hello; # index 省略,代表沒(méi)有默認(rèn)頁(yè) }
正則表達(dá)式匹配
location ~* \.(GIF|PNG|jpg|bmp|jpeg) { # *代表不區(qū)分大小寫(xiě) root /home/img; }
匹配以某個(gè)路徑開(kāi)頭的請(qǐng)求
location ^~ /server/page/ { root /home/page; }
3、綜述
今天對(duì)Nginx配置做了詳細(xì)講解,一些Nginx的高級(jí)應(yīng)用,會(huì)在后面單獨(dú)介紹。希望大家多多溝通交流,共同成長(zhǎng)。
到此這篇關(guān)于Nginx配置文件詳解以及優(yōu)化的文章就介紹到這了,更多相關(guān)Nginx配置文件優(yōu)化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nginx pod hook鉤子優(yōu)雅關(guān)閉示例詳解
這篇文章主要為大家介紹了nginx pod hook鉤子優(yōu)雅關(guān)閉示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11nginx支持codeigniter的pathinfo模式url重寫(xiě)配置寫(xiě)法示例
這篇文章主要介紹了nginx支持codeigniter的pathinfo模式url重寫(xiě)配置寫(xiě)法示例,pathinfo模式是一種開(kāi)發(fā)框架都愛(ài)用的路由模式,需要的朋友可以參考下2014-07-07Nginx訪問(wèn)日志access_log配置及信息詳解(推薦)
當(dāng)你設(shè)置日志級(jí)別成debug,如果你在調(diào)試一個(gè)在線的高流量網(wǎng)站的話,你的錯(cuò)誤日志可能會(huì)記錄每個(gè)請(qǐng)求的很多消息,這樣會(huì)變得毫無(wú)意義,下面小編給大家介紹Nginx訪問(wèn)日志access_log配置及信息詳解,感興趣的朋友跟隨小編一起看看吧2024-04-04Nginx解決Http慢攻擊(Slow HTTP Attack)的方法
緩慢的HTTP拒絕服務(wù)攻擊是一種專(zhuān)門(mén)針對(duì)于Web的應(yīng)用層拒絕服務(wù)攻擊,本文給大家介紹了Nginx解決Http慢攻擊(Slow HTTP Attack)的方法,需要的朋友可以參考下2024-02-02Nginx+Keepalived實(shí)現(xiàn)雙機(jī)主備的方法
這篇文章主要介紹了Nginx+Keepalived實(shí)現(xiàn)雙機(jī)主備的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03Nginx訪問(wèn)本地靜態(tài)資源詳細(xì)步驟(推薦)
Nginx?(engine?x)?是一個(gè)高性能的HTTP和反向代理web服務(wù)器,同時(shí)也提供了IMAP/POP3/SMTP服務(wù),這篇文章主要介紹了nginx配置訪問(wèn)本地靜態(tài)資源,需要的朋友可以參考下2022-12-12