You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS部署Django服务器,Nginx HTTP转HTTPS后DNS连接被拒

问题排查与修复方案

1. 修正Nginx配置中的域名占位符错误

你的Nginx配置里直接把host作为字面量使用,Nginx不会将其解析为实际域名,导致重定向到https://host/xxx这种无效地址,这就是DNS连接拒绝错误的核心原因。必须把配置里的host替换成实际的旧域名:

修改后的HTTP重定向server块:

server {
    listen 80;
    server_name 你的旧域名;  # 替换为实际域名,比如 old-fantasy.com
    return 301 https://$server_name$request_uri;  # 用$server_name变量自动复用上面的域名,避免重复书写

    # 注意:return语句会直接终止请求处理,下方的location块不会执行,可以直接删除
}

2. 补全HTTPS服务的Nginx配置

重定向后的HTTPS请求需要对应的server块处理,否则即使重定向成功,HTTPS也无法正常访问。示例配置如下:

server {
    listen 443 ssl;
    server_name 你的旧域名;

    # 配置SSL证书路径(AWS上可使用Certbot生成免费证书,或AWS ACM证书)
    ssl_certificate /path/to/your/ssl-cert.pem;
    ssl_certificate_key /path/to/your/ssl-privkey.pem;

    # 静态文件与Django代理配置移到此处
    location = /favicon.ico { access_log off; log_not_found off; }
    location /staticfiles/ {
        alias  /home/ubuntu/Filmes/staticfiles/;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

3. 验证基础环境配置

  • 确认旧域名的DNS记录(A/AAAA类型)已正确指向AWS服务器的公网IP
  • 检查AWS安全组是否开放80(HTTP)和443(HTTPS)端口,允许外部IP访问
  • 修改配置后重启Nginx生效:sudo systemctl restart nginx

测试建议

用curl -I http://你的旧域名命令查看重定向响应,确认返回的Location地址是有效的HTTPS域名,而非错误的https://host。

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 23:25:21