为什么Gunicorn使用端口8000/8001而不是80?

为什么Gunicorn使用端口8000/8001而不是80?

问题描述:

我忙着为使用Gunicorn(作为Django服务)和NGINX(作为反向代理)的Django Framework设置开发环境。为什么Gunicorn使用端口8000/8001而不是80?

当我看几个教程like this one和this one,我看到他们使用端口8000和端口8001(http://127.0.0.1:8000http://127.0.0.1:8001)。是否有特殊原因不使用端口80,像任何其他网络服务器?

端口8000通常用于无线电流和恶意软件,为什么?

顺便说一句:我正在使用Virtualenv在Ubuntu 12.04系统上运行它。

NGINX听取端口80并转发给Gunicorn。 Gunicorn运行在127.0.0.1 IP而不是0.0.0.0,因此它不公开监听,因此通过端口80访问站点的唯一方法是通过端口80.

1024以下的所有端口都是特权端口 。要绑定到特权端口需要root用户权限,并且通常不需要使用根级权限运行gunicorn。

什么做的反而是允许使用nginx的像nginx的配置结合127.0.0.1:80,然后代理请求到80端口的非特权端口像8000:

server { 
     location/{ 
       proxy_pass http://127.0.0.1:8000; 
     } 
}