5

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

当我查看一些类似 thisthis的教程时,我发现它们使用端口 8000 和端口 8001(http://127.0.0.1:8000http://127.0.0.1:8001)。像任何其他网络服务器一样,不使用端口 80 是否有特殊原因?

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

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

4

2 回答 2

14

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

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

server {
        location / {
                proxy_pass http://127.0.0.1:8000;
        }
}
于 2012-10-10T06:01:01.350 回答
1

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

于 2012-07-12T02:37:05.970 回答