nginx 配置位置重复多个服务器块

nginx 配置位置重复多个服务器块

我有一个下面的 nginx 配置,其中有 2 个用于 SSL 的服务器块。我的客户为我们的应用程序的域使用了不同的 SSL 证书。设置起来很简单,但现在的问题是,每个监听 443 的服务器块的位置部分都是重复的。有没有办法可以删除这个重复?我见过一种方法,可以将其分离到另一个文件中并将其包含在内,但如果可能的话,我更希望它保留在一个文件中。

upstream example {
    server example1.aws.myserver.com:80;
}

server {
    listen 80;
    server_name example1.myserver.com example1-aws.myserver.com example2.customerserver.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name example1.myserver.com example1-aws.myserver.com;

    ssl_certificate /etc/nginx/ssl/myserver.com.cert;
    ssl_certificate_key /etc/nginx/ssl/myserver.com.private.key;
    ssl_session_timeout 5m;

    location / {
        proxy_pass http://example;
        proxy_redirect off;
        proxy_buffering off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

server {
    listen 443 ssl;
    server_name example2.customerserver.com;

    ssl_certificate /etc/nginx/ssl/example2.customerserver.com.crt;
    ssl_certificate_key /etc/nginx/ssl/example2.customerserver.com.key;
    ssl_session_timeout 5m;

    location / {
        proxy_pass http://example;
        proxy_redirect off;
        proxy_buffering off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

相关内容