Nginx
你如何在 Nginx 中設置伺服器特定的 ENV 值?
我正在啟動一個項目,該項目使用環境變數來設置數據庫連接和其他一些東西。(他們不想使用配置文件,因為人們粗心並覆蓋它們)。
無論如何,我正在使用 nginx,雖然它支持 env - 它似乎支持得不夠好。您不能在每個伺服器塊的基礎上設置 env 值。換句話說,這是行不通的:
server { listen 80; server_name domain; env FOO = "bar"; }
你必須這樣做:
env FOO = "bar"; http { server { listen 80; server_name domain; } }
這意味著我不能擁有特定於虛擬主機的值。所以我必須為每個站點創建一個完整的虛擬主機配置,並且只啟動我現在想要的那個,以便正確設置值。
有沒有辦法解決這個問題?
事實證明,如果您使用的是 fastcgi,您可以通過傳遞來自fastcgi_param的值來解決這個問題。
server { listen 80; server_name domain; # Pass PHP scripts to php-fastcgi listening on port 9000 location ~ path/to/it { include fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_param FOO "bar"; } }