windows中nginx.conf配置文件的设置
nginx作为web服务器的强大作用就不多说了,其诞生于linux平台,也最适合部署到linux平台上,不过目前也都支持部署在windows平台上。不过,对于大多数开发者而言,windows版的nginx更多的是用于本地调试。
而windows版的nginx安装包其实也就是一个压缩包,配置文件及主要依赖脚本与linux版的无异,然而在配置书写上,却有着一些坑让人避之不及。
最精简的nginx.conf配置文件应该是这样的
#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块就像这样:
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;
然而并不是
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.conf
注意:这只是include指令中路径书写有这个差别,其他如server指令里,文件和目录的格式可以正常使用盘符如D:\,但是一样不能带有空格和中文。