nginx - 当 2 个域指向同一服务器时,HTTPS Nginx 重定向过多
问题描述
这是我的conf文件
server {
root /var/www/[NAME]/latest;
index index.php index.html index.htm index.nginx-debian.html;
server_name [SITENAME].com www.[SITENAME].com [ANOTHER-SITENAME].com www.[ANOTHER-SITENAME].com;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/[SITENAME].com-0001/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/[SITENAME].com-0001/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = www.[ANOTHER-SITENAME].com) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = [ANOTHER-SITENAME].com) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = www.[SITENAME].com) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = [SITENAME].com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name [SITENAME].com www.[SITENAME].com [ANOTHER-SITENAME].com www.[ANOTHER-SITENAME].com;
return 404; # managed by Certbot
}
当我打开 [SITENAME].com 时,一切正常
但是当我打开 [ANOTHER-SITENAME].com 时,我收到一条错误消息
此页面无法正常工作 [ANOTHER-SITENAME].com 已将您重定向太多次。
为什么?如何解决这个问题?
解决方案
- 您的配置永远不会适用于 [ANOTHER-SITENAME].com,因为 http 已重定向到 https 而 https 不起作用,因为 SSL 证书仅适用于 [SITENAME].com。
- 如果有两个使用相同文件的站点,请为它们制作单独的块 - 这将更易于管理和排除故障。
- 让它简单,帮助自己......例如:
[站点名称].com
server
{
listen 80;
server_name www.[SITENAME].com [SITENAME].com;
return 301 https://[SITENAME].com$request_uri;
}
server
{
listen 443 ssl;
server_name www.[SITENAME];
ssl_certificate /etc/letsencrypt/live/www.[SITENAME].com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.[SITENAME].com/privkey.pem;
return 301 https://[SITENAME].com$request_uri;
}
server
{
listen 443 ssl;
server_name [SITENAME].com;
root /var/www/[NAME]/latest;
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
[ANOTHER-SITENAME].com
server
{
listen 80;
server_name www.[ANOTHER-SITENAME].com [ANOTHER-SITENAME].com;
return 301 https://[ANOTHER-SITENAME].com$request_uri;
}
server
{
listen 443 ssl;
server_name www.[ANOTHER-SITENAME].com;
ssl_certificate /etc/letsencrypt/live/www.[ANOTHER-SITENAME].com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.[ANOTHER-SITENAME].com/privkey.pem;
return 301 https://[ANOTHER-SITENAME].com$request_uri;
}
server
{
listen 443 ssl;
server_name [ANOTHER-SITENAME].com;
root /var/www/[NAME]/latest;
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
推荐阅读
- linux - 在 linux bash 上使用 Curl 上传文件不起作用
- batch-file - 如何将多个 .TXT 文件批量合并为一个新的 .TXT 文件?
- html - 悬停时引导列相互重叠
- linux - Linux 上的 Azure 迁移评估
- mysql - 如何通过 order by 查询不同的?
- python - 四舍五入到6位数有什么问题吗?
- javascript - chartJS 折线图未绘制小于 minY 的值
- django - 我想授予员工创建帖子的权限。任何帮助,将不胜感激
- javascript - NextJs:404页面返回按钮返回404页面
- google-cloud-platform - SAML 2.0 Okta 与 Google 身份提供商的集成