我开始一个项目,使用环境variables来设置数据库连接和其他一些事情。 (他们不想使用configuration文件,因为人们粗心大意并覆盖它们)。
无论如何,我正在使用nginx,虽然它支持env – 它似乎并没有足够好的支持 。 您不能在每个服务器块的基础上设置env值。 换句话说,这是行不通的。
server { listen 80; server_name domain; env FOO = "bar"; }
你必须这样做:
env FOO = "bar"; http { server { listen 80; server_name domain; } }
这意味着我不能具有特定于虚拟主机的值。 所以我必须为每个站点创build一个完整的虚拟主机configuration,并且只激活一个我想要的那一刻,以便正确设置该值。
有什么办法可以解决这个问题吗?
事实certificate,如果你使用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"; } }