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

如何在不指定端口号的情况下运行Django应用?

不指定端口运行Django应用的实现方法

我们常说的「不指定端口访问Django应用」本质是让服务绑定HTTP默认的80端口或HTTPS默认的443端口,这两个端口属于协议默认端口,访问时不需要在URL里显式标注端口号。

本地开发临时使用

Django自带的runserver工具可以直接指定绑定默认端口,注意1024以下的端口绑定需要管理员权限:

  • Windows系统:用管理员权限打开命令行,执行命令:
    python manage.py runserver 80
  • Linux/macOS系统:在命令前加sudo获取root权限,执行命令:
    sudo python manage.py runserver 80
  • 如需使用HTTPS访问,绑定443端口即可:
    sudo python manage.py runserver 443
    完成启动后直接访问http://localhost或对应设备IP即可,无需加端口后缀。

生产环境正式部署

生产环境不推荐使用Django自带的runserver服务,性能和安全性都不符合要求,推荐用Nginx反向代理的方案实现:

  • 第一步:用Gunicorn或uWSGI启动Django服务,绑定本地内部端口,示例:
    gunicorn 你的项目名.wsgi:application --bind 127.0.0.1:8000
  • 第二步:配置Nginx监听80端口,将外部请求转发到Django服务上,配置示例如下:
server {
    listen 80;
    server_name 你的服务器IP或绑定的域名;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
  • 第三步:重启Nginx使配置生效,直接访问配置的IP或域名即可,无需加端口。如需配置HTTPS,在Nginx中监听443端口并配置SSL证书即可。

常见配置失效排查

如果按上述方法配置后不生效,可以从以下几个维度排查:

  • 端口被占用:检查80/443端口是否被其他服务(如Apache、IIS、其他WEB服务)占用,Linux执行lsof -i:80查看占用进程,Windows执行netstat -ano | findstr "80"查看
  • 权限不足:Linux/macOS系统下绑定1024以下端口必须有root权限,未加sudo会启动失败
  • 防火墙/安全组拦截:如果部署在云服务器上,需要确认云服务商安全组入方向放行了80/443端口,服务器内部的firewalld、ufw等防火墙也需要放行对应端口

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:15:07