2014-03-30 57 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符號鏈接,重新加載,做你想做的任何事情,重新創建符號鏈接,重新加載。