在Amazon EC2 Ubuntu实例配置Gunicorn时遇无效地址错误求助
解决Gunicorn绑定EC2公网IP的无效地址错误
核心原因
EC2实例的公网IP是AWS通过NAT映射提供的,实例本身没有直接绑定这个公网IP,所以Gunicorn无法直接监听公网IP地址。
解决方案步骤
1. 修改Gunicorn配置文件
编辑conf/gunicorn_config.py,将bind字段改为监听所有网卡或者实例的私网IP:
# 方案A:监听所有网卡(推荐,方便外部访问) bind = "0.0.0.0:8000" # 方案B:绑定实例的私网IP(可在EC2控制台"网络和安全"下查看) # bind = "172.31.x.x:8000"
2. 检查EC2安全组规则
确保EC2实例的安全组入站规则已开放8000端口:
- 登录AWS控制台 → EC2 → 目标实例 → 安全组 → 编辑入站规则
- 添加规则:类型选"自定义TCP",端口范围填
8000,来源根据需求设置(测试可填0.0.0.0/0,生产建议限制特定IP)
3. 验证Django配置
修改Django项目的settings.py,将EC2公网IP(或域名)加入ALLOWED_HOSTS:
ALLOWED_HOSTS = ['13.232.32.207', 'your-domain.com']
4. 重启Gunicorn
重新执行启动命令:
gunicorn -c conf/gunicorn_config.py myproject.wsgi
额外排查点
如果仍有问题,检查端口是否被占用:
ss -tulpn | grep 8000
若端口被占用,杀掉对应进程(替换<PID>为进程ID):
kill -9 <PID>
内容的提问来源于stack exchange,提问作者Shubham Agrawal
相关产品推荐
相关产品推荐

