我正在尝试在我的Windows开发环境中设置Nginx。我找不到如何在Linux上创建类似于"sites-enabled"
的东西,其中Nginx会寻找(链接)活动虚拟主机配置。
有没有办法用一个目录做一些类似于实际配置文件的快捷方式和Nginx扫描该目录的目录?或者除了将主机配置复制到nginx.conf
之外,还有另一种方法来连接虚拟主机配置吗?
答案 0 :(得分:20)
在Windows中,您必须提供配置文件所在目录的完整路径。有两个要更新的文件:nginx.conf,它告诉nginx在哪里可以找到网站,以及localhost.conf,它是网站的配置。
假设nginx安装在C:\nginx
中。如果安装目录位于另一个路径,则必须相应地更新该路径,无论它出现在以下两个配置文件中。
地点:C:\nginx\conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#to read external configuration.
include "C:/nginx/conf/sites-enabled/*.conf";
}
地点:C:\nginx\conf\sites-enabled
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
答案 1 :(得分:12)
nginx的某些Linux软件包使用的“基于站点”方法使用了include
指令,该指令了解shell通配符,请参阅http://nginx.org/r/include。您也可以在自己的配置中使用它,例如
http {
...
include /path/to/sites/*.conf;
}
请注意,这种方法可能会非常混乱(特别是,除非您明确使用default_server
,否则很难判断哪个服务器{}是默认服务器。
答案 2 :(得分:3)
以下对我有用,但只是在我将主要的nginx exe文件夹从c:/Program Files (x86)/nginx-1.7.0
移动到c:/nginx-1.7.0
之后(因为我认为它不能很好地处理文件路径中的空格):
http {
...
include "f:/code/mysite/dev-ops/nginx/dev/mysite.conf";
}
答案 3 :(得分:0)
您可以在nginx.config中包含配置相对路径(相对路径只是配置文件本身的路径,而不是日志路径):
http {
include mime.types;
default_type application/octet-stream;
include ../sites-enabled/*.conf;
...
}