Я следую этому руководству , чтобы развернуть свое приложение 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.
Я всю ночь гуглил. Мы ценим Ваше время!