首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过.bash文件调用gunicorn时无法访问服务器

通过.bash文件调用gunicorn时无法访问服务器
EN

Stack Overflow用户
提问于 2017-10-16 17:33:06
回答 1查看 505关注 0票数 0

通过我制作的.bash文件启动gunicorn时,我无法访问服务器。当我使用此命令手动执行此操作时,它会起作用

代码语言:javascript
复制
$ gunicorn project.wsgi:application --bind 192.168.1.130:8000

从教程创建了一个gunicorn.bash文件。我看起来像这样,运行起来没有错误。

代码语言:javascript
复制
#!/bin/bash

NAME="project"                                                   # Name of the application
DJANGODIR=/home/username/projects/project                    # Django project directory
SOCKFILE=/home/username/.venvs/project/run/gunicorn.sock     # We will communicate using this unix socket
USER=username                                              # the user to run as
GROUP=username                                             # the group to run as
NUM_WORKERS=1                                                   # how many worker processes shoul Gunicorn spawn
DJANGO_SETTINGS_MODULE=project.settings.production               # which settings file should Django use
DJANGO_WSGI_MODULE=project.wsgi                                  # WSGI module name
echo "Starting $NAME as `whoami`"

# Activate the virtual environment

cd $DJANGODIR
source /home/username/.venvs/project/bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH

# Create the run directory if it doesn't exsist

RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR

# Start yout Django Unicorn
# Programs meant to be run under supervisor should not daemonize themselves (do not use daemon)

exec gunicorn ${DJANGO_WSGI_MODULE}:application \
  --name $NAME \
  --workers $NUM_WORKERS \
  --user=$USER --group=$GROUP \
  --bind=unix:$SOCKFILE \
  --log-level=debug \
  --log-file=-

我不知道如何解决这个问题?也许可以使用一些命令来查看运行设置与手动启动gunicorn和.bash文件的不同之处?

EN

回答 1

Stack Overflow用户

发布于 2017-10-16 18:42:59

代码语言:javascript
复制
$ gunicorn project.wsgi:application --bind 192.168.1.130:8000

上面使用的是带有host:port--bind,下面是:

代码语言:javascript
复制
exec gunicorn ${DJANGO_WSGI_MODULE}:application \
  --name $NAME \
  --workers $NUM_WORKERS \
  --user=$USER --group=$GROUP \
  --bind=unix:$SOCKFILE \
  --log-level=debug \
  --log-file=-

您指定了unix:file,这将使gunicorn监听unix套接字文件,而不是您的网络接口:unix:$SOCKFILE,因此只需将端口替换为192.168.1.130:8000,它就应该可以像预期的那样被访问

此外,您还可以尝试使用curl (curl --unix-socket /path/to/socket http:/some/resurce)或您选择的其他工具连接到当前配置,以验证其是否实际运行

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46767101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档