首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用Nginx配置实现大型WordPress多媒体的加密

利用Nginx配置实现大型WordPress多媒体的加密
EN

Server Fault用户
提问于 2020-09-09 11:42:25
回答 1查看 332关注 0票数 0

大型WordPress多点安装的跨150+域,并期待走向900+。

我想简化nginx服务器配置。目前,我们必须将服务器列表拆分为100组,因为让我们对每个ssl证书的100进行加密。这很好用。

然而,为了确保这两个www。根域正常工作,我使用if语句来评估传入请求是否为root,然后重定向到www。这也很好,但需要对托管的每个域执行,因此目前在75+ if语句中。

我确信有一种更好、更高效、更优雅的方法来做到这一点。我已经研究过不同的方法,但当您可以在一个服务器块中为所有域寻址所有传入域时,大多数解决方案似乎都是有效的。同样,在我的例子中,我们目前处于3个服务器块中,以便让我们加密才能正常工作。

示例配置..。

代码语言:javascript
复制
##Serve first 100 Sites
server {
    
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    ssl_certificate /etc/letsencrypt/live/domain.com-0010/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/domain.com-0010/privkey.pem; # managed by Certbot
    server_name domain1.com www.domain1.com domain2.com www.domain2.com domain3.com www.domain3.com

    if ($host = domain1.com) {
        return 301 https://www.domain1.com$request_uri;
    }
    if ($host = domain2.com) {
        return 301 https://www.domain2.com$request_uri;
    }
    if ($host = domain2.com) {
        return 301 https://www.domain2.com$request_uri;
    }
    if ($host = domain3.com) {
        return 301 https://www.domain3.com$request_uri;
    }

    ...rest of config

}
##Serve second 100 Sites
server {
    
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    ssl_certificate /etc/letsencrypt/live/domain.com-0020/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/domain.com-0020/privkey.pem; # managed by Certbot
    server_name domain101.com www.domain101.com domain102.com www.domain102.com domain103.com www.domain103.com

    if ($host = domain101.com) {
        return 301 https://www.domain101.com$request_uri;
    }
    if ($host = domain102.com) {
        return 301 https://www.domain102.com$request_uri;
    }
    if ($host = domain102.com) {
        return 301 https://www.domain102.com$request_uri;
    }
    if ($host = domain103.com) {
        return 301 https://www.domain103.com$request_uri;
    }
    ...rest of config

}
EN

回答 1

Server Fault用户

回答已采纳

发布于 2020-09-09 17:48:32

我更喜欢将主www.域拆分到它自己的server块,然后重定向到另一个块:

代码语言:javascript
复制
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    ssl_certificate ...;
    ssl_certificate_key ...;
    server_name example1.com example2.com example3.com;

    return 301 https://www.$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    ssl_certificate ...;
    ssl_certificate_key ...;
    server_name www.example1.com www.example2.com www.example3.com;

    ... rest of config
}

这样,重定向配置显然与主配置分离。不需要对主域的每个请求进行if处理,提高了一些速度。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1033209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档