是否可以在nginx配置中使用条件以便为测试和生产提供相同的配置文件?

时间:2012-06-26 13:13:41

标签: nginx

我想使用相同的config nginx站点配置文件进行测试,只更改服务器名称和端口。

我怎样才能实现那个或接近它的东西?

我想要类似的东西:如果主机名== xxx听80,那么请听81。

2 个答案:

答案 0 :(得分:2)

您可以将所有共享部分放在一个单独的文件中(例如common.conf),并将其包含在两个简约server块中,如下所示:

http {
    [...]
    server {
        listen 80;
        server_name production.local;

        root /some/path/production;
        include common.conf;
    }

    server {
        listen 81;
        server_name testing.local;

        root /some/path/testing;
        include common.conf;
    }
}

修改 实际上,您甚至不需要listen指令。以root用户身份运行时默认为listen 80,否则为listen 8000。只要您有DNS条目或主机文件条目,您就会很好。

答案 1 :(得分:-1)

您应该使用bash/sh。 Unix方式。