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

AWS EC2部署Django项目配置SSL后无法加载问题咨询

Django + AWS EC2 + SSL 配置后无法访问的排查方案

以下是针对你遇到的SSL配置后网站加载超时无法访问问题的具体排查步骤:

1. 检查EC2安全组端口开放

  • 必须确保EC2安全组的入站规则开放了443(HTTPS)端口,来源可设为0.0.0.0/0(允许所有IP访问)或者你指定的范围。很多人配置SSL后漏开443端口,直接导致外部请求无法到达实例。
  • 同时确认80(HTTP)端口的入站规则也正常,因为你的Nginx配置里有HTTP转HTTPS的跳转逻辑。

2. 验证Unix Socket的权限与WSGI服务状态

  • 检查/home/ubuntu/lsh_bank/app.sock的权限:Nginx进程需要有读写这个socket的权限,执行命令查看:
    ls -l /home/ubuntu/lsh_bank/app.sock
    
  • 如果权限不对,调整所属用户/组(默认Nginx运行用户是www-data):
    sudo chown www-data:www-data /home/ubuntu/lsh_bank/app.sock
    sudo chmod 660 /home/ubuntu/lsh_bank/app.sock
    
  • 确认你的WSGI服务(比如Gunicorn)是否正常运行并监听该socket,查看服务日志:
    sudo journalctl -u gunicorn.service  # 替换成你的WSGI服务名称
    
    如果服务未启动或报错,先修复WSGI服务的问题。

3. 检查Nginx配置与运行状态

  • 先验证Nginx配置语法是否正确:
    sudo nginx -t
    
  • 若配置无错误,重启Nginx服务:
    sudo systemctl restart nginx
    
  • 查看Nginx错误日志,定位具体问题:
    sudo tail -f /var/log/nginx/error.log
    
    日志里会明确提示是否是socket连接失败、SSL证书加载错误等问题。

4. 确认SSL证书的有效性与权限

  • 检查Certbot生成的证书文件是否存在:
    ls -l /etc/letsencrypt/live/example.com/
    
  • 确保Nginx进程能读取这些证书文件,证书目录的权限需允许www-data用户访问,若权限不足可调整:
    sudo chmod -R 755 /etc/letsencrypt/live/
    

5. 排查域名解析问题

  • 用nslookup或dig命令验证域名是否正确指向EC2公网IP:
    nslookup example.com
    
  • 若解析不正确,检查你的DNS服务商的记录配置;若解析正确但仍无法访问,可能是DNS缓存导致,可清除本地DNS缓存后重试。

6. 本地实例内测试访问

  • 在EC2实例内部,用curl测试HTTPS访问是否正常:
    curl -v https://localhost
    
    如果本地能正常返回内容,说明问题出在外部网络(安全组、DNS);如果本地也无法访问,说明实例内部的Nginx或WSGI服务存在故障。

内容的提问来源于stack exchange,提问作者M.Gafaru

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 01:05:24