I'm trying to deploy a flask app through uWSGI onto Nginx, with Fedora 20 as the OS, and i'm running into some issues.
I have the following configuration files:
NGINX - Default config with following edit:
location / { try_files $uri @yourapplication; }
location @yourapplication {
include uwsgi_params;
uwsgi_pass unix:/tmp/sjudson_app_uswgi.sock;
}
uWSGI:
[uwsgi]
socket = /tmp/%n.sock
wsgi-file = sjudson_app/sjudson_app.py
callable = sjudson
master = true
chmod-socket = 666
logto = /home/server/logs/uwsgi.log
First of all, when I attempt to run:
uwsgi --ini sjudson_app_uwsgi.ini
I just get:
[uWSGI] getting INI configuration from sjudson_app_uwsgi.ini
Indefinetely. Secondly, when I run it directly from the command line:
uwsgi --socket /tmp/sjudson_app_uwsgi.sock --wsgi-file sjudson_app/sjudson_app.py --callable sjudson --master --chmod-socket=666
I get:
*** Starting uWSGI 2.0.3 (32bit) on [Tue Mar 25 17:58:44 2014] ***
compiled with version: 4.8.2 20131212 (Red Hat 4.8.2-7) on 25 March 2014 16:48:01
os: Linux-3.13.6-200.fc20.i686+PAE #1 SMP Fri Mar 7 17:17:53 UTC 2014
nodename: new-host-6
machine: i686
clock source: unix
detected number of CPU cores: 2
current working directory: /home/server
detected binary path: /usr/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
your processes number limit is 1024
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 bound to UNIX address /tmp/sjudson_app_uwsgi.sock fd 3
Python version: 2.7.5 (default, Feb 19 2014, 13:47:40) [GCC 4.8.2 20131212 (Red Hat 4.8.2-7)]
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0x881cc40
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 127952 bytes (124 KB) for 1 cores
*** Operational MODE: single process ***
WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x881cc40 pid: 1131 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 1131)
spawned uWSGI worker 1 (pid: 1136, cores: 1)
But when I try to connect to the server I get a 502 error. I noticed this stackoverflow post: Flask, nginx, and uwsgi with a similar issue, for which the upvoted answer concerned the socket permissions not being correct. However, I do have the chmod-socket=666 argument, and looking at /tmp:
srw-rw-rw-. 1 server server 0 Mar 25 17:53 sjudson_app_uwsgi.sock
So it doesn't look to me as though that's the issue.
EDIT:
Realized I forgot to include the Nginx error message:
2014/03/26 07:58:38 [crit] 792#0: *15 connect() to unix:/tmp/sjudson_app_uswgi.sock
failed (2: No such file or directory) while connecting to upstream, client:
173.79.242.54, server: localhost, request: "GET / HTTP/1.1", upstream:
"uwsgi://unix:/tmp/sjudson_app_uswgi.sock:", host: "173.79.242.54"
I'm not sure what's meant by the "no such file or directory" in this case. I know the .sock file exists, so what is it struggling to find?