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

Wou*_*elo 4 linux django nginx virtualenv gunicorn

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

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

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

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

dgh*_*dgh 12

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

相反,做的是允许nginx绑定到127.0.0.1:80,然后使用nginx配置将请求代理到端口80到8000的非特权端口:

server {
        location / {
                proxy_pass http://127.0.0.1:8000;
        }
}
Run Code Online (Sandbox Code Playgroud)


Ran*_* Ma 1

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