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