Nagios检查失败:UWSGI CRITICAL:无法连接()到工作正在进行操作

所有似乎都应该安装和工作(网站/服务器正在运行),但不断收到此错误:

UWSGI CRITICAL: could not connect() to workers Operation now in progress 

运行时:

 uwsgi --nagios --socket=0.0.0.0:1717 

我的uwsgi.conf(匿名)是:

 description "uwsgi instance" start on runlevel [2345] stop on runlevel [06] exec uwsgi --master --die-on-term --ini /etc/uwsgi/apps-enabled/my-app.com 

而我的ini文件是:

 [uwsgi] uid = www-data gid = www-data plugins = python module= wsgi_app home = /home/django/domains/my-app.com/my-app.com/ pythonpath = /home/django/domains/my-app.com/my-app/uwsgi/ touch-reload = /home/django/domains/my-app.com/my-app/uwsgi/restart.trig socket = /tmp/my-app.com.socket logto = /var/log/uwsgi/my-app.com.log enable-threads = true single-interpreter = true listen=4000 threads = 5 workers = 10 master = true max-requests=1000 buffer-size = 32768 post-buffering = 8192 

所以这是一个调整sockets的简单问题。 所以,而不是:

 uwsgi --nagios --socket=0.0.0.0:1717 

那么我应该是:

 uwsgi --nagios --socket=/tmp/my-app.com.socket 

但是我的问题并没有停在那里。 然后我遇到了许可问题。 这可以通过添加chmod-socket = 666 。 但是这个解决scheme的安全性并不完美。 相反,您可以将其设置为664,为用户提供sudoer权限来运行uwsgi命令并像这样运行nagios命令:

 sudo /usr/local/bin/uwsgi --nagios --socket=/tmp/my-app.com.socket 

为了给你的用户sudo权限,把它添加到你的/ etc / sudoer文件中(把用户名改成正确的):

 username ALL=(ALL) NOPASSWD:/usr/local/bin/uwsgi --nagios --socket=/tmp/my-app.com.socket 

当我从一个aptitude安装移动到一个点安装,然后我也不得不删除plugins = python 。 还listen = 4000不得不被删除,因为它超过了我的限制。

所以最后我有这个uwsgi的设置:

 [uwsgi] uid = www-data gid = www-data module = wsgi_app home = /home/django/domains/my-app.com/my-app.com/ pythonpath = /home/django/domains/my-app.com/my-app/uwsgi/ touch-reload = /home/django/domains/my-app.com/my-app/uwsgi/restart.trig socket = /tmp/my-app.com.socket chmod-socket = 664 logto = /var/log/uwsgi/my-app.com.log enable-threads = true single-interpreter = true threads = 5 workers = 10 master = true max-requests = 1000 buffer-size = 32768 post-buffering = 8192