Glad it's working. The WSGI Wikipedia article is a good start if you are interested in learning more about its concepts!
On Thursday, June 4, 2015, Kenneth Dombrowski <[email protected]> wrote: > > Oh my god, thank you Brian! I knew it had to be something stupid on my > end, but was fixated on that port 5000 listener. This is my first > experience with uwsgi & I knew I was missing something conceptually. > > > On 15-06-03 19:09 -0400, Brian Nuszkowski wrote: > > Hi Kenneth, > > > > You need to remove "app.run(**kwargs)" from your Python application as > this > > launches a lightweight development HTTP server. You don't need this as > you > > are fronting your application with nginx as the HTTP server. > > > > Hope this helps. > > > > Brian > > > > > > > > On Wednesday, June 3, 2015, Kenneth Dombrowski <[email protected] > <javascript:;>> wrote: > > > > > > > > Hello uWSGI users, > > > > > > I have been struggling to deploy a flask app to my server using uWSGI > in > > > Emperor mode since yesterday and am at a loss why it is not working. > > > > > > My setup is nginx (1.4.6-1ubuntu3.2), uWSGI==2.0.10 installed via pip > > > into a virtualenv, Flask==0.10.1, and Python 3.4.0. supervisord is > > > responsible for launching the Emperor process. > > > > > > The flask app itself works fine when I start it manually bound to a TCP > > > port, > > > and when I manually run uwsgi like: > > > > > > uwsgi -s /tmp/oauthsvc.sock -w wsgi --stats > /tmp/oauthsvc-stats.sock > > > > > > I do notice that even though I think I configured the vassal to use a > > > unix socket, it reports on startup that it is listening to > > > http://127.0.0.1:5000/ > > > > > > I verified with strace that nginx is opening the socket, and > permissions > > > of that socket are 777: > > > > > > srwxrwxrwx 1 oauthsvc oauthsvc 0 Jun 3 18:34 /tmp/oauthsvc.sock > > > srwxrwxrwx 1 oauthsvc oauthsvc 0 Jun 3 18:08 > /tmp/oauthsvc-stats.sock > > > > > > But the connection eventually just times out. > > > > > > My configs & some log output follows. Please review if you have a > > > moment, I would very much appreciate it! > > > > > > Thanks for reading, > > > Kenneth > > > > > > I am currently on #uwsgi as well, but wasn't getting a response there. > > > > > > The nginx config is as simple as can be: > > > > > > server { > > > listen 80; > > > server_name default; > > > > > > location = /robots.txt { access_log off; log_not_found off; } > > > location = /favicon.ico { access_log off; log_not_found off; } > > > > > > location / { > > > include uwsgi_params; > > > uwsgi_pass unix:/tmp/oauthsvc.sock; > > > } > > > } > > > > > > supervisor launches the emporer process with this command: > > > > > > [program:oauthsvc-emperor] > > > command=/services/oauthsvc/services/oauthsvc/bin/uwsgi --emperor > > > /services/oauthsvc/etc/uwsgi/vassals --die-on-term --uid 1005 --gid > 1005 > > > --logto /services/oauthsvc/var/log/uwsgi/emperor.log > > > user=oauthsvc > > > autostart=true > > > autorestart=true > > > redirect_stderr=true > > > > > > The vassal's ini file looks like: > > > > > > [uwsgi] > > > # do not turn on master mode when spawned by emperor > > > # > > > > http://stackoverflow.com/questions/15055002/uwsgi-master-with-emperor-spawns-two-emperors > > > #master = true > > > protocol = uwsgi > > > socket = /tmp/oauthsvc.sock > > > stats = /tmp/oauthsvc-stats.sock > > > daemonize = /services/oauthsvc/var/log/uwsgi/oauthsvc.log > > > chdir = /services/oauthsvc/services/oauthsvc/oauthsvc-server > > > wsgi-file = wsgi.py > > > callable = app > > > chmod-socket = 777 > > > uid = 1005 > > > gid = 1005 > > > virtualenv = /services/oauthsvc/services/oauthsvc > > > # PYTHONHOME > > > home = /services/oauthsvc/services/oauthsvc > > > env = > > > processes = 4 > > > # If you start uWSGI without threads, the Python GIL will not be > > > enabled, so > > > # threads generated by your application will never run unless you > > > include: > > > enable-threads = true > > > > > > And finally, wsgi.py: > > > > > > #!/usr/bin/env python3 > > > > > > from oauthsvc.flask.server import parse_args, configured_app > > > > > > args = parse_args() > > > app = configured_app(args.config, debug=args.debug) > > > app.run(**kwargs) > > > > > > > > > The emperor log: > > > > > > *** Starting uWSGI 2.0.10 (64bit) on [Wed Jun 3 18:34:25 2015] *** > > > compiled with version: 4.8.2 on 03 June 2015 18:32:12 > > > os: Linux-3.13.0-48-generic #80-Ubuntu SMP Thu Mar 12 11:16:15 UTC > 2015 > > > nodename: ip-10-0-1-224 > > > machine: x86_64 > > > clock source: unix > > > pcre jit disabled > > > detected number of CPU cores: 1 > > > current working directory: / > > > detected binary path: > > > /services/oauthsvc/src/bs-oauth-svc.2015-06-03.183113/bin/uwsgi > > > *** WARNING: you are running uWSGI without its master process > manager > > > *** > > > your processes number limit is 30038 > > > your memory page size is 4096 bytes > > > detected max file descriptor number: 1024 > > > *** starting uWSGI Emperor *** > > > *** has_emperor mode detected (fd: 6) *** > > > [uWSGI] getting INI configuration from oauthsvc.ini > > > > > > The vassal log: > > > > > > *** Starting uWSGI 2.0.10 (64bit) on [Wed Jun 3 18:34:25 2015] *** > > > compiled with version: 4.8.2 on 03 June 2015 18:32:12 > > > os: Linux-3.13.0-48-generic #80-Ubuntu SMP Thu Mar 12 11:16:15 UTC > 2015 > > > nodename: ip-10-0-1-224 > > > machine: x86_64 > > > clock source: unix > > > pcre jit disabled > > > detected number of CPU cores: 1 > > > current working directory: /services/oauthsvc/etc/uwsgi/vassals > > > detected binary path: > > > /services/oauthsvc/src/bs-oauth-svc.2015-06-03.183113/bin/uwsgi > > > chdir() to /services/oauthsvc/services/oauthsvc/oauthsvc-server > > > your processes number limit is 30038 > > > your memory page size is 4096 bytes > > > *** WARNING: you have enabled harakiri without post buffering. > Slow > > > upload could be rejected on post-unbuffered webservers *** > > > 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/oauthsvc.sock fd 3 > > > Python version: 3.4.0 (default, Apr 11 2014, 13:08:40) [GCC 4.8.2] > > > Set PythonHome to /services/oauthsvc/services/oauthsvc > > > Python main interpreter initialized at 0x135d4d0 > > > 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 363840 bytes (355 KB) for 4 cores > > > *** Operational MODE: preforking *** > > > * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) > > > > > > > > > _______________________________________________ > > > uWSGI mailing list > > > [email protected] <javascript:;> <javascript:;> > > > http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi > > > > > > _______________________________________________ > > uWSGI mailing list > > [email protected] <javascript:;> > > http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi > > _______________________________________________ > uWSGI mailing list > [email protected] <javascript:;> > http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi >
_______________________________________________ uWSGI mailing list [email protected] http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
