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:\,但是一样不能带有空格和中文。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。