我试图通过不为每个我testing的新站点创build一个新的nginx服务器configuration来节省一些时间在我的开发机器上。 我想知道是否有一种方法让nginx根据我加载的域来更改根目录。
所以,如果我有
mysite.loc myothersite.loc something.loc
Nginx会看里面
www/mysite.loc www/myothersite.loc www/something.loc
这将允许我在模拟域上testing新事物的速度稍微快一点,因为我不必为每个域configuration新的/ etc / nginx / sites-availableconfiguration。
server { listen 80; server_name *.loc; root /www/$host; index index.html; }
这可能吗? 还有另一种方法吗?
你也可以做
server_name _; root /opt/railo/tomcat/webapps/$host;
不知道这是一个好主意,但我已经testing了它,它的工作原理。
nginxconfiguration有一些可以帮助你的东西:
server { server_name ~^(www\.)?(?<domain>.+)$; root /sites/$domain; }
我认为这正是你想要的吗? search命名捕获来获得这部分的文档,但我强烈build议您阅读server_name所有描述。
由于root指令在if条件中是不允许的。 如果您的判断复杂,请参考此解决scheme。
set $PROJECT "release"; if ($host ~ "beta.my.site") { set $PROJECT "beta"; } root /home/northtree/$PROJECT/;