nginx.conf的基本結(jié)構(gòu)
nginx.conf是nginx的配置文件暮屡,其文件結(jié)構(gòu)如下
### 全局模塊
...
### events模塊
events {
...
}
### http模塊
http {
...
server {
...
location /web1 {
...
}
location /web2 {
...
}
}
server {
...
...
}
}
以上主要分為三個部分
1.全局模塊配置
2.events模塊配置
3.http模塊配置
全局模塊配置
默認(rèn)的全局塊的配置如下:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
在全局塊通常配置類似運行Nginx服務(wù)器的用戶、Nginx運行的進(jìn)程數(shù)毅桃、服務(wù)器錯誤日志存儲路徑褒纲、Nginx進(jìn)程號等Nginx服務(wù)器的全局屬性
events模塊配置
events模塊主要配置的是Nginx服務(wù)器與用戶之間連接的情況,在對服務(wù)器進(jìn)行調(diào)優(yōu)的時候會去重點關(guān)注這個部分钥飞。例如:
worker_connections:每個Nginx服務(wù)進(jìn)程連接客戶端的最大數(shù)量莺掠,默認(rèn)情況下可以只配置這個屬性,默認(rèn)配置是1024
use:Nginx服務(wù)器的事件驅(qū)動模型读宙,包括select彻秆、poll、epoll结闸、rtsig唇兑、kqueue、/dev/poll桦锄、eventport幾個事件驅(qū)動模型扎附。事件驅(qū)動模型決定Nginx服務(wù)器對Web請求的響應(yīng)和處理方式,因此需要根據(jù)應(yīng)用場景和需求來選擇適合的事件驅(qū)動模型结耀,可以有效提高響應(yīng)效率留夜。
還有其他的一些對Nginx服務(wù)器的配置,包括序列化图甜、進(jìn)程鎖碍粥、是否允許同時接收多個網(wǎng)絡(luò)請求等,需要根據(jù)實際情況去找對應(yīng)的配置黑毅。
http模塊配置
http模塊是Nginx服務(wù)器配置的重要組成部分嚼摩。在這個模塊中可以配置Web訪問、反向代理、緩存等主要功能低斋。
http模塊可以配置許多屬性,例如:
include mime.types; #引入MIME-Type定義
default_type application/octet-stream; #非MIME-Type時的默認(rèn)類型
#access_log logs/access.log main; #日志路徑
sendfile on; #是否使用sendfile傳輸文件
#tcp_nopush on; #是否等TCP數(shù)據(jù)包到一定大小再發(fā)送
#keepalive_timeout 0;
keepalive_timeout 65; #Nginx服務(wù)器與客戶端保持連接的超時時間
#gzip on; #是否開啟gzip壓縮
除此之外匪凡,還可以配置單連接請求數(shù)上限等信息膊畴。
server:
每一個server配置相當(dāng)于一臺虛擬主機(jī)。server下面可以配置這臺虛擬主機(jī)要去監(jiān)聽的端口病游,例如:
listen 8082
另外唇跨,還可以去配置這臺虛擬主機(jī)的日志路徑、錯誤返回的html等衬衬。
location:
每個server下面會配置一個或者多個location买猖,每個location相當(dāng)于一個指令,將Nginx收到的請求進(jìn)行匹配滋尉,再對匹配到的請求進(jìn)行處理玉控。
例如可以這樣去配置一個server:
server {
listen 80;
#這臺虛擬主機(jī)的名字,沒有特殊要求可以暫時不配置
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location /web1/upload/ {
alias /home/weblogic/upload/;
autoindex on;
}
location /web1/upload/ {
root /home/weblogic/upload/;
index index.html
}
}
這個server會持續(xù)監(jiān)聽80端口狮惜。
第一個location的alias會將對/web1/upload/的請求高诺,直接轉(zhuǎn)到訪問系統(tǒng)的/home/weblogic/upload/目錄,可以訪問到這個目錄下的文件碾篡。
將autoindex設(shè)置為on的話可以在訪問/web1/upload/的時候直接將對應(yīng)目錄下的文件全部顯示出來虱而。不設(shè)置的話將不能獲得目錄,只能根據(jù)文件名去取出文件开泽。
第二個location用的是root則不同牡拇,會將對/web1/upload/的請求,修改為訪問/web1/upload/home/weblogic/upload/穆律,這就是root與alias的不同之處惠呼。
設(shè)置index將使請求直接定向到index.html文件。