проблемы с развертыванием приложения flask с помощью Gunicorn и nginx. Не могу запустить nginx, и когда я мог, proxy_pass не находил .sock - PullRequest
0 голосов
/ 14 июля 2020

Я следую этому руководству , чтобы развернуть свое приложение flask на сервере с помощью Gunicorn и nginx. Я до сих пор все отлично следил.

Однако на шаге 4 - Настройка Gunicorn после создания моего файла /etc/systemd/system/myproject.service и запуска

  • sudo systemctl start myproject
  • sudo systemctl enable myproject
  • sudo systemctl status myproject

в соответствии с инструкциями в руководстве, вместо активного статуса я получаю сообщение об ошибке (teamr - это имя проекта):

* teamr.service - Gunicorn instance to serve teamr
   Loaded: loaded (/etc/systemd/system/teamr.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2020-07-14 00:22:46 CDT; 4min 18s ago
 Main PID: 10932 (code=exited, status=203/EXEC)

Jul 14 00:22:46 instance-1 systemd[1]: Started Gunicorn instance to serve teamr.
Jul 14 00:22:46 instance-1 systemd[1]: teamr.service: Main process exited, code=exited, status=203/EXEC
Jul 14 00:22:46 instance-1 systemd[1]: teamr.service: Failed with result 'exit-code'.

Я обнаружил, что изменение этих строк в файле .service на использование / usr / local / bin вместо / home / vagrant / teamr устранило ошибку выше: успешно созданы.

Проблема возникает при попытке настроить мой файл nginx / sites-available / teamr.

Вот что я сделал на основе того, что указано в руководстве, с моим фактическим домен заполнен:

server {
    listen 80;
    server_name mydomain_here www.mydomain_here;

    location / {
        include proxy_params;
        proxy_pass unix:/home/vagrant/teamr/teamr.sock;
    }
}

и вот результат nginx -t и journalctl -xe соответственно:

nginx: [emerg] invalid URL prefix in /etc/nginx/sites-enabled/teamr:7
nginx: configuration file /etc/nginx/nginx.conf test failed

и

    -- Unit nginx.service has begun starting up.
Jul 14 01:09:46 instance-1 nginx[12324]: nginx: [emerg] invalid URL prefix in /etc/nginx/sites-enabled/teamr:7
Jul 14 01:09:46 instance-1 nginx[12324]: nginx: configuration file /etc/nginx/nginx.conf test failed
Jul 14 01:09:46 instance-1 systemd[1]: nginx.service: Control process exited, code=exited status=1
Jul 14 01:09:46 instance-1 sudo[12321]: pam_unix(sudo:session): session closed for user root
Jul 14 01:09:46 instance-1 systemd[1]: nginx.service: Failed with result 'exit-code'.
Jul 14 01:09:46 instance-1 systemd[1]: Failed to start A high performance web server and a reverse proxy server.

Я думаю что он говорит мне, что не может найти / teamr с поддержкой сайтов? Файл определенно существует, и это определенно символическая ссылка c, как и указано в руководстве. Я подозреваю, что это может быть как-то связано с тем, что мне пришлось использовать / usr / local / bin в файле .service. Я попытался заменить proxy_pass на этот путь, но он все еще не работал. Может, он не может найти файл teamr.sock?

В каком каталоге должен храниться мой файл .sock? Я никогда не создавал его, если только файл .service не должен был создать его для меня? Я очень ценю любую помощь или совет, которые вы можете мне дать. Раньше мне удавалось запустить nginx, и единственная проблема заключалась в том, что он по-прежнему обслуживал страницу по умолчанию. Честно говоря, я не уверен, что изменилось с тех пор, чтобы он вообще не запускался, но даже после того, как я его запустил, кажется, что есть проблема с моим proxy_pass.

Я всю ночь гуглил. Мы ценим Ваше время!

...