首页 > 解决方案 > Nginx全球服务器块?

问题描述

如何定义适用于所有虚拟主机的服务器块?

Aka 有一个通用块来为所有子域配置 SSL(它们使用相同的证书)

server {
    listen      80;
    server_name *.example.com;
    return 301 https://$host$request_uri;
}

# Have a block like this that does SSL for all subdomains
server {
    listen          443 ssl ;
    listen          [::]:443 ssl;

    server_name         *.example.com;

    ssl_certificate     /certs/live/example.com/cert.pem;
    ssl_certificate_key /certs/live/example.com/privkey.pem;

    ssl_session_cache    shared:SSL:10m;
    ssl_session_timeout  10m;
}

标签: nginx

解决方案


如果您有多个server使用通用配置的块,则可以将许多nginx指令放置在外部块 ( http { ... }) 中,并且将被任何server未专门覆盖这些值的块继承。注意上下文:检查nginx指令时。请参阅指令列表

或者,使用该include指令将通用配置语句从外部文件提取到配置文件的任何部分。有关详细信息,请参阅此文档


推荐阅读