簡體   English   中英

通過.bash文件調用Gunicorn時無法訪問服務器

[英]Not able to access server when invoking gunicorn via .bash file

通過我制作的.bash文件啟動gunicorn時,我無法訪問服務器。 當我使用此命令手動執行時,它可以工作

$ gunicorn project.wsgi:application --bind 192.168.1.130:8000

通過教程創建了gunicorn.bash文件。 我看起來像這樣,運行正常。

#!/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文件有何不同?

$ gunicorn project.wsgi:application --bind 192.168.1.130:8000

上面使用--bindhost:port --bind ,但下面使用:

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套接字文件上而不是在網絡接口:port上偵聽,因此只需將unix:$SOCKFILE替換為192.168.1.130:8000 ,它應該可以按預期訪問

另外,您可以嘗試使用curlcurl --unix-socket /path/to/socket http:/some/resurce )或您選擇的其他工具連接到當前配置,以驗證其是否實際運行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM