如何在 Nginx 中设置服务器特定的 ENV 值?

如何在 Nginx 中设置服务器特定的 ENV 值?

我正在启动一个使用环境变量来设置数据库连接和其他一些内容的项目。(他们不想使用配置文件,因为人们粗心大意会覆盖它们)。

无论如何,我正在使用 nginx,而它支持环境- 似乎没有足够支持. 您无法在每个服务器块基础换句话说,这是行不通的:

server {
    listen 80;
    server_name domain;
    env FOO = "bar";
}

你必须这样做:

env FOO = "bar";

http {
    server {
        listen 80;
        server_name domain;
    }
}

这意味着我不能拥有特定于 vhost 的值。因此,我必须为每个站点创建整个 vhost 配置,并且只激活我当前想要的那个,这样才能正确设置该值。

有什么办法可以解决这个问题吗?

答案1

事实证明,如果你使用 fastcgi,你可以通过传递以下值来解决这个问题:fastcgi_参数

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";
    }
}

相关内容