![使用 AWS Route 53 和 NGINX 无法通过 www 访问我的网站](https://linux22.com/image/774891/%E4%BD%BF%E7%94%A8%20AWS%20Route%2053%20%E5%92%8C%20NGINX%20%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%20www%20%E8%AE%BF%E9%97%AE%E6%88%91%E7%9A%84%E7%BD%91%E7%AB%99.png)
我的网站已经启动并运行,您可以在互联网上通过[domain].com
在浏览器中输入地址来找到它。
当我尝试使用访问它时www.[domain].com
,它返回错误(未找到)。
我使用 Route 53 作为 DNS 服务器,其配置如下:
(地址、IP 和令牌不是真实的)
在我的服务器上我有以下配置(NGINX):
server {
listen 80 default_server;
root /var/www/domain;
index index.html index.htm;
location /api {
proxy_redirect http://localhost:3001/ /api;
proxy_pass_header Server;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_connect_timeout 5;
proxy_read_timeout 240;
proxy_intercept_errors on;
proxy_pass http://localhost:3001;
}
location /graphql {
proxy_redirect http://localhost:3001/ /graphql;
proxy_pass_header Server;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_connect_timeout 5;
proxy_read_timeout 240;
proxy_intercept_errors on;
proxy_pass http://localhost:3001;
}
# Root route
location = / {
try_files $uri /app/index.html;
}
# Any other route default to landing
location / {
try_files $uri $uri/ /app/index.html;
}
}
我需要让我的网站能够同时适用于[domain].com
和 www. [domain].com
,并且www.[domain].com/page
无论如何访问它都能在浏览器中显示正确的名称。
非常感谢您的帮助。
答案1
对我来说,您的裸域名和 www 域名都解析到相同且显然正确的 IP 地址:3.221.4.90
该 IP 地址与您在屏幕截图中显示的不同。
两个网站都从纯 HTTP 重定向到 HTTPS。
但是 HTTPS 连接到 www 会导致错误消息:
curl -vv https://www.quadfloor.com/
* About to connect() to www.quadfloor.com port 443 (#0)
* Trying 3.221.4.90...
* Connected to www.quadfloor.com (3.221.4.90) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* Server certificate:
* subject: CN=quadfloor.com
* start date: Feb 01 16:54:41 2022 GMT
* expire date: May 02 16:54:40 2022 GMT
* common name: quadfloor.com
* issuer: CN=R3,O=Let's Encrypt,C=US
* NSS error -12276 (SSL_ERROR_BAD_CERT_DOMAIN)
* Unable to communicate securely with peer: requested domain name does not match the server's certificate.
* Closing connection 0
curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.
您的 TLS 证书似乎仅对 有效,quadfloor.com
而对 无效www.quadfloor.com
。
建议:使用该certbot
--expand
选项添加www.quadfloor.com
到您当前的证书。
此外,您可能需要查看您的 WordPress 设置,当我使用 curl-k
选项忽略证书错误时,我还会看到一堆
href="http://3.221.4.90/wp-content/plugins/elementor/...
包含您的 IP 地址而不是网站域名的错误,而且将 https 与 http 内容混合不是一个好主意。我还看到了指向的链接href="https://3.221.4.90/
,您可能也没有针对裸 IP 地址的 TLS 证书。