gunicorn启动后无法访问Django站点

gunicorn启动后无法访问Django站点,django,gunicorn,Django,Gunicorn,我正在尝试用shell脚本启动gunicorn服务器。问题是无法访问站点(当我尝试通过浏览器访问时,连接超时)。我这里有两个脚本,一个有效,一个无效。我试图理解为什么第一个脚本不起作用,以及如何解决这个问题 第一个sript(不起作用;当我尝试访问domain.com上的站点时连接超时:8000;日志中没有错误): 第二个脚本(有效;在domain.com上加载站点:8000): 唯一的区别在于gunicorn_django线。我不确定反斜杠是什么意思。它是否告诉gunicorn在默认地址上运行

我正在尝试用shell脚本启动gunicorn服务器。问题是无法访问站点(当我尝试通过浏览器访问时,连接超时)。我这里有两个脚本,一个有效,一个无效。我试图理解为什么第一个脚本不起作用,以及如何解决这个问题

第一个sript不起作用;当我尝试访问domain.com上的站点时连接超时:8000;日志中没有错误):

第二个脚本有效;在domain.com上加载站点:8000):


唯一的区别在于gunicorn_django线。我不确定反斜杠是什么意思。它是否告诉gunicorn在默认地址上运行

黑斜杠只是将单个命令继续到下一行的一种方式

这里的关键是-b0.0.0:8000,它告诉gunicorn在您的所有网络接口上服务。如果没有-b参数,它将绑定到127.0.0.1:8000,并且只服务来自本地计算机的请求

如果gunicorn直接处理来自外部世界的请求,则最有可能的情况是,-b0.0.0:8000才是您想要的。如果您使用的是nginx或其他反向代理服务器(一种常见的设置),并且只希望gunicorn服务来自同一台机器的请求,那么您需要使用第一个脚本

典型的设置如下所示:

  • 用户->nginx在0.0.0.0:80上监听或公共ip->gunicorn在127.0.0.1:8000上监听

顺便说一下,您可以使用ifconfig命令查看计算机可用接口的列表

非常感谢
#!/bin/bash
  set -e
  LOGFILE=/var/log/gunicorn/hello.log
  LOGDIR=$(dirname $LOGFILE)
  NUM_WORKERS=3

  USER=lumiawor
  GROUP=lumiawor

  cd /home/lumiawor/public_html/test/hello
  source /home/lumiawor/public_html/test/bin/activate
  test -d $LOGDIR || mkdir -p $LOGDIR

  gunicorn_django -w $NUM_WORKERS \
      --user $USER --group $GROUP --log-level debug \
      --log-file $LOGFILE 2>>$LOGFILE
#!/bin/bash
  set -e
  LOGFILE=/var/log/gunicorn/hello.log
  LOGDIR=$(dirname $LOGFILE)
  NUM_WORKERS=3

  USER=lumiawor
  GROUP=lumiawor

  cd /home/lumiawor/public_html/test/hello
  source /home/lumiawor/public_html/test/bin/activate
  test -d $LOGDIR || mkdir -p $LOGDIR

  gunicorn_django -w $NUM_WORKERS -b 0.0.0.0:8000
      --user $USER --group $GROUP --log-level debug \
      --log-file $LOGFILE 2>>$LOGFILE