大型WordPress多点安装的跨150+域,并期待走向900+。
我想简化nginx服务器配置。目前,我们必须将服务器列表拆分为100组,因为让我们对每个ssl证书的100进行加密。这很好用。
然而,为了确保这两个www。根域正常工作,我使用if语句来评估传入请求是否为root,然后重定向到www。这也很好,但需要对托管的每个域执行,因此目前在75+ if语句中。
我确信有一种更好、更高效、更优雅的方法来做到这一点。我已经研究过不同的方法,但当您可以在一个服务器块中为所有域寻址所有传入域时,大多数解决方案似乎都是有效的。同样,在我的例子中,我们目前处于3个服务器块中,以便让我们加密才能正常工作。
示例配置..。
##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
}发布于 2020-09-09 17:48:32
我更喜欢将主www.域拆分到它自己的server块,然后重定向到另一个块:
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处理,提高了一些速度。
https://serverfault.com/questions/1033209
复制相似问题