部署Django应用至AWS Elastic Beanstalk时遇连接超时问题求助
解决AWS Elastic Beanstalk部署Django的/members/超时问题
可能的原因及排查修复步骤
1. 确保Django监听正确地址
- 本地
runserver默认只监听127.0.0.1,但Elastic Beanstalk环境中,Django需要监听0.0.0.0才能被Nginx代理。检查启动命令是否包含0.0.0.0:8000:python manage.py runserver 0.0.0.0:8000 - 在
.ebextensions/django.config配置文件中确认启动命令:option_settings: aws:elasticbeanstalk:container:python: Command: "python manage.py runserver 0.0.0.0:8000"
2. 验证/members/路由配置
- 本地测试
/members/是否正常访问,确认项目根urls.py已正确引入members应用的路由:from django.urls import include, path urlpatterns = [ path('', include('main.urls')), path('members/', include('members.urls')), ] - 检查members应用的
urls.py是否有对应视图映射,且视图函数无阻塞操作(如长时间数据库查询、外部API调用)。
3. 排查数据库连接问题
/members/页面通常依赖数据库,确认EB环境变量中已配置正确的数据库凭据(在EB控制台「配置>软件>环境变量」中设置)。- 查看Django日志文件
/var/log/django.log,是否存在数据库连接错误或查询超时信息。
4. 调整Nginx超时设置
- 若视图处理时间过长导致超时,通过
.ebextensions/nginx.config增加Nginx代理超时时间:files: "/etc/nginx/conf.d/timeout.conf": mode: "000644" owner: root group: root content: | proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; - 重新部署应用生效。
5. 修正ALLOWED_HOSTS配置
- 临时调整为包含本地地址和EB域名,排除域名限制问题:
ALLOWED_HOSTS = ['my-tennis-club-env-new.eba-gysp36xc.us-west-1.elasticbeanstalk.com', '127.0.0.1']
内容的提问来源于stack exchange,提问作者George Douglas
相关产品推荐
相关产品推荐

