Nginx + Gunicorn - обратный прокси не работает - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь настроить приложение python flask на сервере, следуя этому руководству: https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-ubuntu-18-04. Я работаю на своей локальной машине, следуя руководству.Однако, когда я пытаюсь реализовать на реальном сервере с той же конфигурацией, у меня возникает проблема с передачей запросов обратно на сервер gunicorn.Я могу без проблем обслуживать статический контент из Nginx.Когда я выполняю вызов веб-службы из статического содержимого обратно в Nginx, он должен быть перенаправлен обратно на сервер gunicorn.

Например, когда я пытаюсь сделать вызов 'http://example.com/rest/webService',, я ожидаюNginx для передачи чего-либо, начиная с / rest / обратно, на gunicorn.Приведенная ниже ошибка - это все, что я вижу в журналах ошибок о том, что происходит:

2019/01/18 12:48:18 [error] 2930 # 2930: * 18 open () "/ var / www/ html / rest / webService "не удалось (2: такой файл или каталог отсутствуют), клиент: ip_address, сервер: example.com, запрос:« GET / rest / webService HTTP / 1.1 », хост:« example.com », реферер: "http://example.com/"

Вот настройка для python_app:

server {
    listen 80;

    server_name example.com www.example.com;
    root /var/www/html;
    index index.html;

    location ^/rest/(.*)$ {
            include proxy_params;
            proxy_pass http://unix:/home/username/python_app/python_app.sock;
    } }

Единственным изменением в моем файле nginx.conf было изменение 'include / etc / nginx / sites-enabled / /* 'to' include /etc/nginx/sites-enabled/python_app'.

Пожалуйста, дайте мне знать, если у вас есть какие-либо идеи о том, чего мне не хватает! Спасибо!

1 Ответ

0 голосов
/ 23 января 2019

Не решение, но некоторые вопросы ....

Если вы запустите

sudo systemctl status myproject

Видите ли вы подтверждение, что Gunicorn работает, и с каким сокетом он связан?

И делает

sudo nginx -t 

Вернись, не сказав диагностики?

Регулярное выражение в блоке местоположения для nginx - я не вижу ничего похожего в этом руководстве, я вижу, что вы пытаетесь захватить все после "rest /", но, глядя на документы nginx, я думаю, вам понадобится $ 1 для ссылки на захваченную часть URL. Можете ли вы попробовать без «^ / rest /(.*)$» и посмотреть, найдет ли nginx что-нибудь?

Является ли группа, которая владеет вашим каталогом, группой, частью которой является nginx (многие настройки имеют www-данные)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...