我忙着使用Gunicorn(作为Django服务)和NGINX(作为反向代理)为Django Framework设置开发环境。
当我查看几个教程like this和this one时,我看到他们使用端口8000和端口8001(http://127.0.0.1:8000
和http://127.0.0.1:8001
)。是否有特殊原因不使用端口80,就像任何其他网络服务器一样?
端口8000通常用于无线电流和恶意软件,为什么?
BTW:我在Ubuntu 12.04系统上使用Virtualenv运行它。
答案 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。