我正在尝试使用shell脚本启动gunicorn服务器.问题是网站无法访问(当我尝试通过浏览器访问时连接超时).我这里有2个脚本,一个有效,另一个无效.我试图理解为什么第一个脚本不起作用以及如何解决问题.
第一次sript(不起作用 ;当我尝试访问domain.com:8000上的站点时连接超时;日志中没有错误):
#!/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
Run Code Online (Sandbox Code Playgroud)
第二个脚本(工作 ;在domain.com:8000加载网站):
#!/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
Run Code Online (Sandbox Code Playgroud)
唯一的区别在于gunicorn_django线.我真的不确定反斜杠是什么意思.它会告诉gunicorn在默认地址上运行吗?
黑色滑动只是将一个命令继续到下一行的一种方式.
这里的关键是-b 0.0.0.0:8000,它告诉gunicorn在你的所有网络接口上提供服务.如果没有-b参数,它将绑定到127.0.0.1:8000并仅提供来自本地计算机的请求.
最有可能的是,如果gunicorn直接处理来自外部世界的请求,那么-b 0.0.0.0:8000只是你想要的.如果您正在使用nginx或其他一些反向代理服务器(常见设置)并且只希望gunicorn为来自同一台机器的请求提供服务,那么您将需要使用第一个脚本.
典型设置如下:
顺便说一句,您可以使用ifconfig命令查看计算机可用接口的列表.
| 归档时间: |
|
| 查看次数: |
1467 次 |
| 最近记录: |