Windows Server上Nginx部署Django后内网无法访问的解决方案咨询
内网访问问题的解决方案
1. 调整Django服务的绑定地址
Django默认仅监听localhost:8000,内网其他设备无法访问这个本地地址。启动服务时需指定绑定到服务器内网IP或0.0.0.0(监听所有网卡):
python manage.py runserver 0.0.0.0:8000
若使用Gunicorn等WSGI服务器,同样需绑定到0.0.0.0:
gunicorn --bind 0.0.0.0:8000 project.wsgi
2. 优化Nginx监听与代理配置
确保Nginx监听所有网卡的80端口,同时代理目标指向可被内网访问的地址:
server { listen 0.0.0.0:80; server_name 192.168.xxx.xx; location /static { alias D:/project/apps/media; } location /media/ { alias D:/project/apps/media; } location / { proxy_pass http://0.0.0.0:8000; } }
3. 配置Windows Server防火墙规则
Windows防火墙默认拦截80端口的入站请求,需添加允许规则:
- 打开「Windows Defender防火墙」→「高级设置」
- 进入「入站规则」→「新建规则」
- 选择「端口」,指定TCP 80端口
- 选择「允许连接」,勾选「域、专用」(适配内网环境)
- 命名规则后完成配置
4. 验证网络连通性
- 在内网其他PC上执行
ping 192.168.xxx.xx,确认服务器网络可达 - 用服务器端
ipconfig命令核对内网IP是否正确,确保服务器与其他PC处于同一网段
5. 重启Nginx服务
修改配置后验证语法并重启:
cd c:/nginx nginx -t # 验证配置语法 nginx -s reload # 重启Nginx
内容的提问来源于stack exchange,提问作者Lucas Mgana
相关产品推荐
相关产品推荐

