下面是我与 Nginx 一起使用的配置文件,用于将所有 WWW 和非 WWW 重定向到 https:/domain.com URL
server {
listen 80 443;
server_name domain.com www.domain.com;
ssl_certificate /usr/share/ca-certificate/pvt/ssl-unified.crt;
ssl_certificate_key /usr/share/ca-certificate/pvt/ssl.key;
return 301 https://domain.com$request_uri;
}
server {
server_name domain.com;
ssl_certificate /usr/share/ca-certificate/pvt/ssl-unified.crt;
ssl_certificate_key /usr/share/ca-certificate/pvt/ssl.key;
listen *:443 ssl;
index index.php index.html index.htm;
root /usr/share/nginx/www;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www;
}
}
在位于的文件夹中/usr/share/nginx
有www
和lah
。当我在浏览器中加载时www.domain.com
,它指向lah.domain.com
当我加载时domain.com
它会变成https://domain.com
并给我一个
网页不可用 - 错误代码:ERR_CONNECTION_REFUSED
我在 Nginx 配置文件中输入了什么错误?
答案1
好的,我找到了问题所在,首先,我从顶部块中删除了443
和:ssl_certificate*
server {
listen 80;
server_name domain.com www.domain.com;
return 301 https://domain.com$request_uri;
}
然后我就把底部的块留在原处。
我发现在子域名/etc/nginx/sites-enabled/
的第二个配置文件中lah
,有一个不存在的符号链接,并且正在default
使用/etc/nginx/sites-available/default
lah.domain.com
因此,情况是这样的:
[http|https]://*.domain.com -> https://lah.domain.com
这就是我在测试时使用这个原始配置文件所做的事情。
其次,我修复了符号链接并将下面的配置文件default
放到所需的位置,并删除了所有我不需要的内容:
# sudo ls /etc/nginx/sites-enabled
-rw-r--r-- 1 root root 1320 Jan 30 13:25 default -> /etc/nginx/sites-available/default
我将文件按原样放在该目录下default
:
server {
listen 80 443;
server_name domain.com www.domain.com;
ssl_certificate /usr/share/ca-certificate/pvt/ssl-unified.crt;
ssl_certificate_key /usr/share/ca-certificate/pvt/ssl.key;
return 301 https://domain.com$request_uri;
}
server {
server_name domain.com;
ssl_certificate /usr/share/ca-certificate/pvt/ssl-unified.crt;
ssl_certificate_key /usr/share/ca-certificate/pvt/ssl.key;
listen *:443 ssl;
index index.php index.html index.htm;
root /usr/share/nginx/www;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www;
}
}
现在一切正常。[http|https]为了[www|非www]将重定向至:https://domain.com