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]> 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:;>
> http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
>
_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi

Reply via email to