Nginx (proxy_pass) + Gunicorn не может быть достигнут - PullRequest
0 голосов
/ 20 сентября 2019

Я хочу запустить django с gunicorn и nginx в качестве прокси-сервера на удаленном Ubuntu VPS.

Сайт работает с сервером разработки djangos :

python manage.py runserver 0.0.0.0:8000

Сайт работает с сервером gunicorns (даже статические файлы не работают):

gunicorn my_project.wsgi --bind 0.0.0.0:8000

Но с nginx сверху я получаю следующую ошибку:

Невозможно связаться с этим сайтом ... отказано в подключении.ERR_CONNECTION_REFUSED

Также оба файла журнала nginx error.log & access.log пусты.

Вот как я настроил nginx:

server {
        listen 80;

        server_name my_ip_address;

        location / {
            proxy_pass http://127.0.0.1:8001;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Scheme $scheme;
        }
} 

В этом случаеGunicorn работает с --bind 127.0.0.1:8001, конечно.

Проверка состояния (service nginx status) возвращает:

● nginx.service - A high performance web server and a reverse proxy server
Active: active (running) since Fri 2019-09-20 07:41:00 UTC; 1min 19s ago
Starting A high performance web server and a reverse proxy server...
nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Started A high performance web server and a reverse proxy server.

1 Ответ

1 голос
/ 20 сентября 2019

Сначала проверьте вашу конфигурацию с помощью nginx -t.Размещенная вами конфигурация недопустима в качестве отдельного файла конфигурации, но я предполагаю, что вы используете общую структуру конфигурации nginx с основными каталогами nginx.conf и sites-available и sites-enabled.

Если это такне жалуйтесь, внесите ошибку, например, сняв закрывающую скобку, и попробуйте снова.Если он по-прежнему не жалуется, ваша конфигурация не принимается nginx.

В этом случае проверьте, правильно ли вы создали символическую ссылку от sites-enabled/your_config до sites-available/your_config.

Если все это кажется правильным:

  • проверить, действительно ли работает nginx: ps aux | grep nginx
  • проверить, прослушивает ли nginx порт 80: netstat -tulpen | grep ":80"
  • проверка правил брандмауэра
...