Колба uWSGI и Nginx : статус systemctl myproject : СБОЙ

#python #nginx #flask #digital-ocean #uwsgi

Вопрос:

Прежде всего, я уже запускаю аналогичный веб-сервер Python flask на компьютере.

Я следую этому руководству, чтобы разместить веб-сервер с помощью Python Flask. И на 5-м шаге (пока никаких проблем), когда я тестирую с :

 systemctl status myproject
 

Я получаю

 serveurB.service - uWSGI instance to serve serveurB
 Loaded: loaded (/etc/systemd/system/serveurB.service; enabled; vendor preset: enabled)
 Active: failed (Result: exit-code) since Mon 2021-06-28 14:25:45 UTC; 1min 53s ago
Process: 7992 ExecStart=/home/sydney/serveurB/serveurB/bin/uwsgi --ini serveurB.ini 
(code=exited, status=1/FAILURE)
Main PID: 7992 (code=exited, status=1/FAILURE)

Jun 28 14:25:45 ecocathlon uwsgi[7992]: detected binary path: /home/sydney/serveurB/serveurB/bin/uwsgi
Jun 28 14:25:45 ecocathlon uwsgi[7992]: !!! no internal routing support, rebuild with pcre support !!!
Jun 28 14:25:45 ecocathlon uwsgi[7992]: your processes number limit is 3789
Jun 28 14:25:45 ecocathlon uwsgi[7992]: your memory page size is 4096 bytes
Jun 28 14:25:45 ecocathlon uwsgi[7992]: detected max file descriptor number: 1024
Jun 28 14:25:45 ecocathlon uwsgi[7992]: lock engine: pthread robust mutexes
Jun 28 14:25:45 ecocathlon uwsgi[7992]: thunder lock: disabled (you can enable it with --thunder-lock)
Jun 28 14:25:45 ecocathlon uwsgi[7992]: bind(): Permission denied [core/socket.c line 230]
Jun 28 14:25:45 ecocathlon systemd[1]: serveurB.service: Main process exited, code=exited, status=1/FAILURE
Jun 28 14:25:45 ecocathlon systemd[1]: serveurB.service: Failed with result 'exit-code'.
 

В котором

 myproject = serveurB
myprojectenv = serveurB (yes same name, i misstyped that one but i don't think it is the issue)
user = sydney
 

Все мои предыдущие шаги и файлы кажутся правильными.

Заранее спасибо, Сидни Р.

Ответ №1:

Ключевая строка в сообщении об ошибке-это вот эта:

 Jun 28 14:25:45 ecocathlon uwsgi[7992]: bind(): Permission denied [core/socket.c line 230]
 

bind это метод, который «привязывает» ваш сокет к порту для прослушивания, и вы получаете ошибку «Отказано в разрешении». Это означает, что вы используете порт с низким номером (

Я бы рекомендовал изменить порт на что-то выше 1024, так как запуск приложения от имени root может быть опасным. Есть и другие решения, но они выходят за рамки этого ответа.

Комментарии:

1. Действительно, я понимаю, почему это может быть проблемой. Как я могу изменить порт на что-то выше 1024 ? Может быть, это также связано с тем, что мой другой веб-сервер по умолчанию находится на том же порту ? Я не знаю, где это указано, тхо. Заранее спасибо,

Ответ №2:

Вы должны быть осторожны с именами при настройке своего проекта в digital ocean. Лучший способ убедиться, что вы не получите никаких ошибок в именовании, просто сделайте имя проекта согласованным с проектом и при настройке вашего сервера. Для этого я бы посоветовал вам дважды проверить свой файл службы nguni и посмотреть, действительно ли вы ссылались на свой проект uWSGI.

Комментарии:

1. Я попробую это сделать ! Спасибо за ответ