Xeo*_*oss 9 nginx web-server environment-variables virtualhost
我正在启动一个项目,该项目使用环境变量来设置数据库连接和其他一些事情。(他们不想使用配置文件,因为人们粗心大意并覆盖了它们)。
无论如何,我正在使用 nginx,虽然它支持 env - 它似乎并没有很好地支持它。您不能在每个服务器块的基础上设置 env 值。换句话说,这行不通:
server {
listen 80;
server_name domain;
env FOO = "bar";
}
Run Code Online (Sandbox Code Playgroud)
你必须这样做:
env FOO = "bar";
http {
server {
listen 80;
server_name domain;
}
}
Run Code Online (Sandbox Code Playgroud)
这意味着我不能拥有特定于 vhost 的值。所以我必须为每个站点创建一个完整的 vhost 配置,并且只激活我目前想要的一个,以便正确设置值。
有没有办法解决这个问题?
Xeo*_*oss 14
事实证明,如果您使用的是 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";
}
}
Run Code Online (Sandbox Code Playgroud)