nginx做爲web服務器的強大做用就很少說了,其誕生於linux平臺,也最適合部署到linux平臺上,不過目前也都支持部署在windows平臺上。不過,對於大多數開發者而言,windows版的nginx更多的是用於本地調試。node
而windows版的nginx安裝包其實也就是一個壓縮包,配置文件及主要依賴腳本與linux版的無異,然而在配置書寫上,卻有着一些坑讓人避之不及。linux
最精簡的nginx.conf配置文件應該是這樣的nginx
#user nobody; worker_processes 4; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 4096; } http { include mime.types; default_type application/octet-stream; #access_log logs/access.log main; sendfile on; sendfile_max_chunk 512k; open_file_cache max=204800 inactive=20s; open_file_cache_min_uses 1; open_file_cache_valid 30s; tcp_nopush on; tcp_nodelay on; keepalive_timeout 5; types_hash_max_size 2048; }
每一個站點的server配置,儘可能獨立一個conf文件,而後再nginx.conf中進行引用方便管理,所以,在http配置單元中,咱們用include指令用來將其餘地方的配置文件包含進來,如:include /home/conf/system1.conf;
完整的http塊就像這樣:web
http { include mime.types; default_type application/octet-stream; #access_log logs/access.log main; sendfile on; sendfile_max_chunk 512k; open_file_cache max=204800 inactive=20s; open_file_cache_min_uses 1; open_file_cache_valid 30s; tcp_nopush on; tcp_nodelay on; keepalive_timeout 5; types_hash_max_size 2048; #從這裏添加外部引用配置文件(單個) include /home/conf/system1.conf; #從這裏添加外部引用配置文件(多個) include /home/conf/*.conf; }
在linux平臺書寫要添加的配置文件的絕對路徑,然而在windows下,理論上要寫成
include D:/Program Files/conf/system1.conf;windows
然而並非服務器
1)在windows下nginx.conf中寫include配置文件的時候,路徑不能含有空格和中文,因此,想Program Files這種路徑就不要想了。
2)在windows下,路徑不能含有盤符,由於它是以linux的風格查找路徑和文件,所以,他只認linux下的路徑風格,因此只能寫成相似/programfile/conf/system1.conf的格式,那怎麼知道他是在哪一個盤的目錄底下?答案是:nginx識別當前nginx程序所在路徑的根目錄做爲 / 的目錄,把他當作相似linux下的根目錄/ , 如:nginx在D盤下,那麼/programfile/conf/system1.conf的實際完整路徑就應該是:d:/programfile/conf/system1.confapp
注意:這只是include指令中路徑書寫有這個差異,其餘如server指令裏,文件和目錄的格式能夠正常使用盤符如D:\,可是同樣不能帶有空格和中文。tcp