我的生产机器上有一些奇怪的行为。 我在Ubuntu 16.04上运行Python 2.7.12。 Nginx作为Web服务器(1.10.3)。我正在运行Django(1.11.15)应用程序。 UWSGI 2.0.17.1将处理对应用程序服务器的请求。
基本上,一切正常。直到我重新启动机器。重新启动后,大约需要3分钟,我才会看到消息“宣布我对皇帝的忠诚...”。
从系统重新启动到UWSGI准备就绪的那一刻,我的Nginx收到499/502和503错误。
我尝试了很多方法来解决此问题。我要做的一件事是不启动NGinx即可启动计算机。等待3分钟,启动NGinx,然后一切正常。因此,Emperor / Systemd似乎有问题。
我的皇帝文件:
.ToString()
我的uwsgi:
[Unit]
Description=uWSGI Emperor service
After=syslog.target
[Service]
ExecStart=/usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all
[Install]
WantedBy=multi-user.target
重启后,系统日志输出:
# d4t wsgi ini file
[uwsgi]
# master
master = false
# maximum number of processes
processes = 5
# threads
enable-threads = true
# socket to use
socket = /tmp/uwsgi-omniit.sock
# permissions
chmod-socket = 666
# base directory
chdir = /var/www/omni-it/omniit/
# virtualenv
virtualenv = /var/www/omni-it/
# module
module = omniit.wsgi:application
# buffer size: the autocomplete is a bit large in the request
buffer-size = 8190
# user and group
uid = www-data
gid = www-data
在此之后,我可以重新加载并重新启动皇帝而没有任何问题。不再发生错误。
任何帮助将不胜感激!