UPDATE: if I don't use socket and use 127.0.0.1:3031
instead, everything works fine.
Nginx version is 1.6.3, and uwsgi is 2.0.11.1
/etc/uwsgi.ini:
[uwsgi]
uid = uwsgi
gid = uwsgi
pidfile = /run/uwsgi/uwsgi.pid
emperor = /etc/uwsgi.d
stats = /run/uwsgi/stats.sock
emperor-tyrant = true
cap = setgid,setuid
logto = /var/log/uwsgi.log
/etc/uwsgi.d/daimaduan_preview.ini
[uwsgi]
plugin = python,http
protocol = uwsgi
chdir = /var/www/daimaduan/preview/current
master = true
processes = 4
threads = 20
socket = /tmp/daimaduan-preview.sock
chmod-socket = 666
uid = vagrant
gid = vagrant
logto = /var/log/daimaduan/preview/uwsgi.log
virtualenv = /var/www/daimaduan/preview/venv
wsgi-file = deploy.wsgi
/etc/nginx/conf.d/daimaduan.conf
server {
listen 80;
server_name example.com;
access_log /var/log/daimaduan/preview/access.log;
error_log /var/log/daimaduan/preview/error.log;
root /var/www/daimaduan/preview/current/daimaduan;
location / {
uwsgi_pass unix:/tmp/daimaduan-preview.sock;
include uwsgi_params;
}
}
However, I got errors from nginx by visiting http://127.0.0.1/:
2015/10/06 14:14:04 [crit] 16946#0: *1 connect() to unix:/tmp/daimaduan-preview.sock failed (2: No such file or directory) while connecting to upstream, client: 127.0.0.1, server: , request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/tmp/daimaduan-preview.sock:", host: "127.0.0.1"
2015/10/06 14:17:44 [crit] 16995#0: *1 connect() to unix:/tmp/daimaduan-preview.sock failed (2: No such file or directory) while connecting to upstream, client: 127.0.0.1, server: , request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/tmp/daimaduan-preview.sock:", host: "127.0.0.1"
2015/10/06 14:28:13 [crit] 16995#0: *3 connect() to unix:/tmp/daimaduan-preview.sock failed (2: No such file or directory) while connecting to upstream, client: 127.0.0.1, server: , request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/tmp/daimaduan-preview.sock:", host: "127.0.0.1"
2015/10/06 15:29:14 [crit] 16995#0: *5 connect() to unix:/tmp/daimaduan-preview.sock failed (2: No such file or directory) while connecting to upstream, client: 127.0.0.1, server: , request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/tmp/daimaduan-preview.sock:", host: "127.0.0.1"
2015/10/06 15:30:52 [crit] 16995#0: *7 connect() to unix:/tmp/daimaduan-preview.sock failed (2: No such file or directory) while connecting to upstream, client: 127.0.0.1, server: , request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/tmp/daimaduan-preview.sock:", host: "127.0.0.1"
2015/10/06 15:32:48 [crit] 16995#0: *9 connect() to unix:/tmp/daimaduan-preview.sock failed (2: No such file or directory) while connecting to upstream, client: 127.0.0.1, server: , request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/tmp/daimaduan-preview.sock:", host: "127.0.0.1"
2015/10/06 15:37:14 [crit] 16995#0: *11 connect() to unix:/tmp/daimaduan-preview.sock failed (2: No such file or directory) while connecting to upstream, client: 127.0.0.1, server: , request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/tmp/daimaduan-preview.sock:", host: "127.0.0.1"
2015/10/06 15:38:14 [crit] 16995#0: *13 connect() to unix:/tmp/daimaduan-preview.sock failed (2: No such file or directory) while connecting to upstream, client: 127.0.0.1, server: , request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/tmp/daimaduan-preview.sock:", host: "127.0.0.1"
2015/10/06 15:38:21 [crit] 17577#0: *1 connect() to unix:/tmp/daimaduan-preview.sock failed (2: No such file or directory) while connecting to upstream, client: 127.0.0.1, server: , request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/tmp/daimaduan-preview.sock:", host: "127.0.0.1"
And I am pretty sure /tmp/daimaduan-preview.sock
does exist. I also checked uwsgi log:
*** Starting uWSGI 2.0.11.1 (64bit) on [Tue Oct 6 15:38:09 2015] ***
compiled with version: 4.8.3 20140911 (Red Hat 4.8.3-9) on 21 July 2015 16:01:10
os: Linux-3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014
nodename: localhost.localdomain
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 1
current working directory: /etc/uwsgi.d
detected binary path: /usr/sbin/uwsgi
chdir() to /var/www/daimaduan/preview/current
your processes number limit is 3826
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 inherited UNIX address /tmp/daimaduan-preview.sock fd 3
Python version: 2.7.5 (default, Jun 24 2015, 00:41:19) [GCC 4.8.3 20140911 (Red Hat 4.8.3-9)]
Set PythonHome to /var/www/daimaduan/preview/venv
Python main interpreter initialized at 0x865410
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 1342720 bytes (1311 KB) for 80 cores
*** Operational MODE: preforking+threaded ***
WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x865410 pid: 17132 (default app)
mountpoint already configured. skip.
*** uWSGI is running in multiple interpreter mode ***
gracefully (RE)spawned uWSGI master process (pid: 17132)
spawned uWSGI worker 1 (pid: 17475, cores: 20)
spawned uWSGI worker 2 (pid: 17476, cores: 20)
spawned uWSGI worker 3 (pid: 17477, cores: 20)
spawned uWSGI worker 4 (pid: 17478, cores: 20)
It also looks normal.
Some questions here:
/etc/uwsgi.d/daimaduan.ini
?/tmp/daimaduan-preview.sock
? I tried chown-socket
but failedNo such file or directory
errors in /var/log/daimaduan/preview/uwsgi.log
?Put the daimaduan_preview.ini
's socket file into /run
instead of /tmp
. Like in this answer, your system probably using namespaced temporary directories, which means every service can only see its own files in /tmp
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With