我试图通过不为我测试的每个新站点创建新的 nginx 服务器配置来节省我的开发机器上的一些时间。我想知道 nginx 是否有办法根据我正在加载的域更改根目录。
所以如果我有
mysite.loc
myothersite.loc
something.loc
Run Code Online (Sandbox Code Playgroud)
Nginx 会往里面看
www/mysite.loc
www/myothersite.loc
www/something.loc
Run Code Online (Sandbox Code Playgroud)
这将使我能够更快地在模拟域上测试新事物,因为我不必为每个人都使用新的 /etc/nginx/sites-available 配置。
server {
listen 80;
server_name *.loc;
root /www/$host;
index index.html;
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?还有另一种方法吗?
在nginx的配置有什么可以帮助你:
server {
server_name ~^(www\.)?(?<domain>.+)$;
root /sites/$domain;
}
Run Code Online (Sandbox Code Playgroud)
我认为这正是您想要的,对吗?搜索命名捕获以获取文档的这一部分,但我强烈建议您阅读server_name
.
小智 7
你也可以这样做
server_name _;
root /opt/railo/tomcat/webapps/$host;
Run Code Online (Sandbox Code Playgroud)
不确定这是否是一个好主意,但我已经对其进行了测试并且它有效。
因为if 条件中不允许使用root指令。如果您判断复杂,请参考此解决方案。
Run Code Online (Sandbox Code Playgroud)set $PROJECT "release"; if ($host ~ "beta.my.site") { set $PROJECT "beta"; } root /home/northtree/$PROJECT/;
归档时间: |
|
查看次数: |
10603 次 |
最近记录: |