Gunicorn无法访问8000端口,但Django开发服务器可正常访问的问题排查
排查Gunicorn监听但8000端口无法访问的步骤
确认Gunicorn绑定地址
检查启动Gunicorn的命令,确保绑定的是0.0.0.0:8000而非127.0.0.1:8000。默认情况下Gunicorn会绑定本地回环地址,只能本机访问,需要显式指定:gunicorn --bind 0.0.0.0:8000 <你的Django项目>.wsgi:application如果使用配置文件(如
gunicorn.conf.py),检查其中的bind参数是否为0.0.0.0:8000。验证端口监听状态
用以下命令确认Gunicorn实际监听的地址:ss -tulpn | grep 8000输出中如果显示
127.0.0.1:8000,说明绑定地址错误;如果显示0.0.0.0:8000,则进入下一步排查。检查Bitnami虚拟环境激活状态
Bitnami Django栈自带独立虚拟环境,确保启动Gunicorn前已激活:. /opt/bitnami/python/venv/bin/activate未激活虚拟环境可能导致使用系统级Gunicorn,引发配置或依赖不匹配问题。
排查SELinux限制(针对Fedora/CentOS类系统)
SELinux可能阻止Gunicorn对外提供网络服务,临时关闭测试:setenforce 0如果关闭后能访问,需配置永久规则:
setsebool -P httpd_can_network_connect on查看Gunicorn日志排查错误
启动Gunicorn时开启日志输出,定位潜在问题:gunicorn --bind 0.0.0.0:8000 --access-logfile - --error-logfile - <你的Django项目>.wsgi:application重点关注权限错误、Django配置问题(如
ALLOWED_HOSTS是否包含服务器IP/域名)。确认防火墙规则
虽然runserver能访问8000端口,仍需确认防火墙未针对Gunicorn进程做特殊限制:ufw status确保
8000/tcp规则处于允许状态,若未添加则执行:ufw allow 8000/tcp
内容的提问来源于stack exchange,提问作者imparante
相关产品推荐
相关产品推荐

