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

时间:2012-07-12 01:32:03

标签: django linux nginx virtualenv gunicorn

我忙着使用Gunicorn(作为Django服务)和NGINX(作为反向代理)为Django Framework设置开发环境。

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

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

BTW:我在Ubuntu 12.04系统上使用Virtualenv运行它。

2 个答案:

答案 0 :(得分:11)

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

取而代之的是允许nginx绑定到127.0.0.1:80,然后使用nginx配置将端口80的请求代理到非特权端口(如8000):

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

答案 1 :(得分:1)

NGINX收听端口80并转发给Gunicorn。 Gunicorn在127.0.0.1 IP而非0.0.0.0上运行,因此它没有公开收听,因此从外部访问该站点的唯一方法是通过端口80。