Godaddy域名解析后Nginx 443端口无法通过主机名访问,直连IP正常
问题排查与解决方案
1. 修正Nginx的server_name配置
确保Nginx配置文件中对应HTTPS的server块,server_name字段包含你的目标主机名(比如www.holdengjuka.com),避免仅匹配IP导致域名请求落入默认server块。
示例正确配置片段:
server { listen 443 ssl; server_name www.holdengjuka.com holdengjuka.com; # 包含所有需匹配的域名 ssl_certificate /etc/letsencrypt/live/www.holdengjuka.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/www.holdengjuka.com/privkey.pem; # React单页应用路由兼容配置 location / { root /path/to/your/react/build; try_files $uri $uri/ /index.html; } # Django后端反向代理配置 location /api/ { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } # HTTP自动跳转HTTPS server { listen 80; server_name www.holdengjuka.com holdengjuka.com; return 301 https://$host$request_uri; }
修改后重载Nginx生效:sudo nginx -s reload
2. 验证LetsEncrypt证书的域名覆盖范围
确认证书包含目标主机名,执行命令检查:
certbot certificates
如果证书未覆盖www.holdengjuka.com,重新申请包含所有域名的证书:
certbot certonly --nginx -d holdengjuka.com -d www.holdengjuka.com
3. 确认Godaddy DNS解析有效性
- 检查A/AAAA记录是否准确指向服务器IP,临时将TTL设为300加速解析生效
- 排查是否存在错误的CNAME记录,避免域名被解析至非目标地址
4. 清除本地DNS缓存
本地缓存可能导致解析异常,执行对应系统命令刷新:
- Windows:
ipconfig /flushdns - macOS/Linux:
sudo systemd-resolve --flush-caches
5. 通过Nginx日志定位问题
查看访问日志与错误日志,确认域名请求的流向:
tail -f /var/log/nginx/access.log /var/log/nginx/error.log
若日志显示请求落入默认server块,需修正server_name配置;若为静态文件404,检查React构建文件路径是否正确。
内容的提问来源于stack exchange,提问作者Holden G.
相关产品推荐
相关产品推荐

