2014-03-30 26 views
0

说我有在/etc/nginx/conf.d/myscript.conf如何从bash命令行禁用nginx中的位置?

server { 
    listen 8080; 
    server_name _; 

    location = /a {...} # <-- needs to be disabled during maintainence 
    location = /b {...} 
    location = /c {...} # <-- needs to be enabled during maintainence 
} 

对于maintainence我需要禁用/a位置,做一些命令\部署一个配置,然后启用/a位置回来。

这可以通过bash自动完成,无需编程配置修改?

回答

2

您可以使用includes,然后处理创建和删除符号链接。通常你会发现这是通过服务器块来完成的(基本的nginx.conf实际上只包含了conf.d/*,它是如何加载你的服务器块的),但它可以用任何东西来完成。基本上,您将拥有两个文件夹,分别命名为位置可用和位置启用的文件夹,并将所有位置块放入位置的单个文件中。在您的服务器块中,包含locations-enabled/*,然后将希望从位置启用的所有位置(可用于位置)启用。每当你添加或删除符号链接时,只需重新加载nginx,你应该很好。

在你的情况下,只是RM符号链接,重新加载,做你想做的任何事情,重新创建符号链接,重新加载。