Django + Nginx проблема с домашним кликом - PullRequest
0 голосов
/ 26 июня 2019

Я использую Django с Gunicorn, Virtualenv, Supervisor и Nginx. Когда я перешел на Nginx, при щелчке по домашнему URL моего блога отображается «mydjangoblogserver», и результат не найден, но все другие функции работают нормально, кроме «click home».

Я думаю, что Nginx и Gunicorn несут ответственность за проблему.

ngnix.conf:

user root;
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    upstream mydjangoblogserver {
        server unix:/home/blog/dev/DjangoBlog/run/gunicorn.sock fail_timeout=0;
    }

    server{
        server_name www.xxx.club;
        root /home/blog/dev/DjangoBlog;
        listen 80;
        keepalive_timeout 70;
        location /collectedstatic/ {
            expires max;
            alias /home/blog/dev/DjangoBlog/;
        }

        location / {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            if (!-f $request_filename) {
                #proxy_pass http://xxx.club;
                proxy_pass http://mydjangoblogserver;
                break;
            }
        }
    }            

файл django_start:

#!/bin/bash
NAME="djangoblog" # Name of the application
DJANGODIR=/home/blog/dev/DjangoBlog # Django project directory
SOCKFILE=/home/blog/dev/DjangoBlog/run/gunicorn.sock # we will communicte using this unix socket
USER=root # the user to run as
GROUP=root # the group to run as
NUM_WORKERS=3 # how many worker processes should Gunicorn spawn
DJANGO_SETTINGS_MODULE=DjangoBlog.settings # which settings file should Django use
DJANGO_WSGI_MODULE=DjangoBlog.wsgi # WSGI module name

echo "Starting $NAME as `whoami`"

# Activate the virtual environment
cd $DJANGODIR
source /home/blog/dev/python3/bin/activate
export django_settings_module=$DJANGO_SETTINGS_MODULE
#export pythonpath=$djangodir:$pythonpath
export PYTHONPATH=$DJANGODIR:$PYTHONPATH

# create the run directory if it doesn't exist
#rundir=$(dirname $sockfile)
RUNDIR=$(dirname $SOCKFILE)
echo $RUNDIR
test -d $RUNDIR || mkdir -p $RUNDIR

# start your django unicorn
# programs meant to be run under supervisor should not daemonize themselves (do not use --daemon)
# exec /var/www/dev/python3/bin/gunicorn ${django_wsgi_module}:application \
echo ${django_wsgi_module}
exec /home/blog/dev/python3/bin/gunicorn -b 0.0.0.0:8000 ${DJANGO_WSGI_MODULE}:application \
--name $NAME \
--workers $NUM_WORKERS \
--user=$USER --group=$GROUP \
--bind=unix:$SOCKFILE \
--log-level=debug \
--log-file=/home/blog/dev/DjangoBlog/gunicorn.log

supervisor.conf:

[program:djangoblog]
command = /home/blog/dev/DjangoBlog/bin/django_start
user = root
autostart=true
autorestart=true

redirect_stderr = true
stdout_logfile = /root/logs/blog/robot.log
stderr_logfile=/root/logs/blog/err.log
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...