nginx 上的两个不同部署

nginx 上的两个不同部署

我有两个应用程序需要使用同一个 nginx 服务器来提供服务。

第一个应该在 help.example.com 下运行。另一个为每个客户提供一个域名,例如 foo.example.com 和 bar.example.com

我知道 nginx 优先考虑较长的服务器名称,但是我似乎找不到能帮助我的例子。

我尝试使用两个 nginx conf 文件,但失败了。以下是“规格”:

server {
    listen 80;

    server_name www.example.com.br example.com.br;
    root /opt/apps/gsa-web/src/;
    client_max_body_size 4G;

    location / {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_connect_timeout 10;
        proxy_read_timeout 1800;
        proxy_pass http://localhost:8000/;
        proxy_intercept_errors on;
    }

    error_page 500 502 503 504 /media/50x.html;

}

帮助文件

server {
    listen 80;

    server_name www.help.example.com.br help.example.com.br;
    root /path-to-my-docs/docs_site/;
    client_max_body_size 4G;

    location / {
    }
}

答案1

为此,在同一个配置文件中您将拥有:

server { listen 80;

server_name www.help.example.com.br help.example.com.br;
root /path-to-my-docs/docs_site/;
client_max_body_size 4G;

location / {

}

server { listen 80;

server_name *.example.com.br; # Notice the wildcard. 
root /opt/apps/gsa-web/src/;
client_max_body_size 4G;

location / {
    proxy_pass_header Server;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Scheme $scheme;
    proxy_connect_timeout 10;
    proxy_read_timeout 1800;
    proxy_pass http://localhost:8000/;
    proxy_intercept_errors on;
}

error_page 500 502 503 504 /media/50x.html;

}

通配符将允许所有不支持的子域重定向到配置。进一步阅读:http://nginx.org/en/docs/http/server_names.html#wildcard_names

相关内容