Настройка nginx и супервизора в Ubuntu
Я использую настройку django-gunicorn-nginx, следуя этому руководству http://ijcdigital.com/blog/django-gunicorn-and-nginx-setup/ Устанавливает nginx, он работает. Затем я установил супервизор, настроил его, а затем перезагрузил свой сервер и проверил, он показывает 502 плохих шлюза. Я использую Ubuntu 12.04 LTS
/etc/supervisor/conf.d/qlimp.conf
[program: qlimp]
directory = /home/nirmal/project/qlimp/qlimp.sh
user = nirmal
command = /home/nirmal/project/qlimp/qlimp.sh
stdout_logfile = /path/to/supervisor/log/file/logfile.log
stderr_logfile = /path/to/supervisor/log/file/error-logfile.log
Затем я перезапустил супервизор, и я запустил эту команду $ supervisorctl start qlimp
, и я получаю эту ошибку
unix:///var/run/supervisor.sock no such file
Есть ли проблема в настройке моего диспетчера?
Спасибо!
Ответы
Ответ 1
То, что нет файла сокета, вероятно, означает, что супервизор не запущен. Причина, по которой он не работает, может заключаться в том, что в вашем файле qlimp.conf есть какая-то ошибка. Если вы выполните
sudo service supervisor start
вы можете видеть, действительно ли это так. Если диспетчер уже работает, он скажет. И если он обнаруживает ошибку, он обычно дает вам более полезное сообщение об ошибке, чем supervisorctl.
Ответ 2
Я встречал ту же проблему, что и вы, и несколько раз, вот решение:
-
Сначала удалите версию супервизора apt-get:
sudo apt-get remove supervisor
-
Убейте процесс супервизора:
sudo ps -ef | grep supervisor
-
Затем получите самую новую версию (версия apt-get 3.0a8):
sudo easy_install(pip install) supervisor==3.0b2
-
Эхо конфигурационный файл (root premission):
echo_supervisord_conf > /etc/supervisord.conf
5.Start supervisord:
sudo supervisord
6.Введите супервизор:
sudo supervisorctl
Все сделано! Получайте удовольствие!
Ответ 3
Попробуйте это
cd /etc/supervisor
sudo supervisord
sudo supervisorctl restart all
Ответ 4
Вы уверены, что супервизор установлен и запущен? Есть ли файл сокета, присутствующий в /var/run/supervisor.sock
?
Ошибка указывает, что supervisorctl
, CLI управления, не может достигнуть сокета UNIX для связи с supervisord
, демоном.
Вы также можете проверить /etc/supervisor/supervisord.conf
и посмотреть, соответствуют ли значения для разделов unix_http_server
и supervisorctl
.
Обратите внимание, что это проблема уровня Ubuntu, а не проблема с Python, Django или nginx и, как таковой, этот вопрос, вероятно, принадлежит ServerFault.
Ответ 5
В Ubuntu 16+, похоже, это вызвано переключением на systemd, это обходное решение может исправить для новых серверов:
# Make sure Supervisor comes up after a reboot.
$ sudo systemctl enable supervisor
# Bring Supervisor up right now.
$ sudo systemctl start supervisor
а затем проверьте свой статус iconic.conf [Мой пример] супервизора
$ sudo supervisorctl status iconic
![введите описание изображения здесь]()
PS: Удостоверьтесь, что у пушки не должно быть никаких проблем во время работы.
Ответ 6
Ошибка может быть связана с тем, что у вас нет прав.
Возможно, вы можете исправить ошибку таким способом, открыть свой терминал и ввести vim /etc/supervisord.conf
, чтобы отредактировать файл, найти строки
[unix_http_server]
;file=/tmp/supervisor.sock ; (the path to the socket file)
;chmod=0700 ; socket file mode (default 0700)
и удалите точку с запятой в начале строки ;file=/tmp/supervisor.sock
и ;chmod=0700
, перезапустите наблюдателя. Я предлагаю вам сделать это.
Ответ 7
Убедитесь, что в /etc/supervisor.conf
существуют следующие два раздела
[unix_http_server]
file=/tmp/supervisor.sock ; path to your socket file
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
Ответ 8
Вы можете сделать что-то вроде этого: -
sudo touch /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock
sudo service supervisor restart
Это определенно работает, попробуйте это.
Ответ 9
В моем случае супервизор не работал. Чтобы определить проблему, которую я запускаю:
sudo systemctl status supervisor.service
Проблема заключалась в том, что у меня были журналы, указывающие на несуществующий каталог, поэтому мне просто нужно было его создать.
Надеюсь, это поможет:)
Ответ 10
touch /var/run/supervisor.sock
sudo supervisord -c /etc/supervisor/supervisord.conf
и после supervisorctl перезапустить все
если вы хотите прослушать порт супервизора
ps -ef | grep supervisord
если хочешь убить процесс
kill -s SIGTERM 2503
Ответ 11
Создайте файл conf и ниже добавьте строки
Помните, что для работы с Nginx необходимо отключить автозапуск при загрузке системы, который вы активировали при установке Nginx.
https://askubuntu.com/info/177041/nginx-disable-autostart
Примечание. Для работы с супервизором все процессы супервизора должны быть в режиме "демон отключен".
[program:nginx]
command=/usr/sbin/nginx -g "daemon off;"
autostart=true
autorestart=true
startretries=5
stopasgroup=true
stopsignal=QUIT
numprocs=1
startsecs=0
process_name=WebServer(Nginx)
stderr_logfile=/var/log/nginx/error.log
stderr_logfile_maxbytes=10MB
stdout_logfile=/var/log/nginx/access.log
stdout_logfile_maxbytes=10MB
sudo supervisorctl reread && sudo supervisorctl update
![enter image description here]()