为什么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:8000
和http://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;
}
}