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

使用Docker、Nginx和Django还原端口至8000时遇连接拒绝错误

问题分析与解决

你的连接拒绝错误来自两处配置问题,直接修改即可解决:

1. 修正Django服务的监听地址

在docker-compose.yml的web服务中,runserver命令绑定了127.0.0.1,这会导致Django仅监听容器内部的回环地址,Nginx容器无法访问。需改为监听容器的所有网卡:

修改后web服务的command字段:

command: python manage.py runserver 0.0.0.0:8000

2. 修正Nginx的反向代理目标

在nginx.conf中,你已定义upstream backend指向web:8000,但实际proxy_pass用的是http://127.0.0.1:8000——这是Nginx容器自身的回环地址,而非Django服务地址。可采用以下两种方案:

方案一:使用已定义的upstream

修改location /中的proxy_pass:

location / {
    proxy_pass http://backend;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

方案二:直接指向web服务

若无需upstream配置,也可直接写服务名:

location / {
    proxy_pass http://web:8000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

验证修改

修改完成后重启容器:

docker-compose down && docker-compose up --build

此时访问http://127.0.0.1即可正常转发到Django的8000端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 13:33:32