<div dir="ltr">Sure, here's a blog post showing my working config for Flask + uWSGI Emperor + Nginx:<div><br></div><div><a href="http://www.jeffwidman.com/blog/802/serving-multiple-flask-apps-via-uwsgi-nginx/">http://www.jeffwidman.com/blog/802/serving-multiple-flask-apps-via-uwsgi-nginx/</a><br></div><div><br></div><div>Feel free to ask questions or suggest improvements... </div><div hspace="streak-pt-mark" style="max-height:1px"><img style="width:0px;max-height:0px;overflow:hidden" src="https://mailfoogae.appspot.com/t?sender=aamVmZkBqZWZmd2lkbWFuLmNvbQ%3D%3D&type=zerocontent&guid=d55ba6e8-83ee-4484-88b7-99af534d376e"><font color="#ffffff" size="1">ᐧ</font></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Oct 6, 2015 at 4:03 PM, tigernassau <span dir="ltr"><<a href="mailto:tigernassau@gmail.com" target="_blank">tigernassau@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>Hmm, looked at pull request - more
      confusion!   Would try emperor but see no docs on that - is your
      setup something you can post?.  Otherwise we have Bottle working
      nicely (and only seems to be missing session vs Flask, so it might
      be easier to just get Beaker working with Bottle <br><div><div class="h5">
      <br>
      On 10/06/2015 03:03 PM, Jeff Widman wrote:<br>
    </div></div></div><div><div class="h5">
    <blockquote type="cite">
      <div dir="ltr">I just setup Nginx + uWSGI + Flask the other day
        for the first time. You're right, the Flask docs on uWSGI are
        outdated and use deprecated uWSGI commands. There's a pull
        request in the Flask repo that shows the correct way (as best I
        could tell) to set things up, it also covers the slightly more
        complicated scenario of serving multiple Flask apps on a single
        uWSGI socket.
        <div><br>
        </div>
        <div>I take a cursory look through your code and nothing stuck
          out to me... I used the Emperor option in place of the Master
          process option, as it gives more flexibility, so maybe that's
          why I'm not seeing the specific issue... maybe try that? </div>
        <div hspace="streak-pt-mark" style="max-height:1px"><img style="width:0px;max-height:0px;overflow:hidden"><font color="#ffffff" size="1">ᐧ</font></div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Tue, Oct 6, 2015 at 9:03 AM,
          tigernassau <span dir="ltr"><<a href="mailto:tigernassau@gmail.com" target="_blank">tigernassau@gmail.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">we can
            only get Flask to load on a debian server with nginx, uwsgi
            with a command line statement, not on server boot - yet we
            can get bottle to load just fine.<br>
            <br>
            most of the docs are either outdated, 80% complete, or
            different combinations (ie gunicorn, mod_wsgi,
            uwsgi-plugin-python, systemd ...) so we hope to write up a
            detailed set of docs that work for this combination<br>
            <br>
            Here's what we have:<br>
            nginx.conf<br>
                 .....<br>
                  upstream testapp {<br>
                      server localhost: 8082;<br>
                  }<br>
                 .....<br>
                 location / {<br>
                          try_files $uri @wsgi;<br>
                  }<br>
                  location @wsgi {<br>
                          include /etc/nginx/uwsgi_params;<br>
                          uwsgi_pass testapp<br>
                  }<br>
                 .....<br>
            <br>
            /etc/uwsgi/apps-enabled/testapp.ini<br>
              [uwsgi]<br>
              socket = localhost: 8082<br>
              chdir = /home/testapp<br>
              file = app.py<br>
              master = true<br>
              plugins = python<br>
              uid = www-data<br>
              gid = www-data<br>
              vacuum = true<br>
            <br>
            --- test command line run --- (works!)<br>
            sudo uwsgi --socket <a href="http://127.0.0.1:8082" rel="noreferrer" target="_blank">127.0.0.1:8082</a> --wsgi-file
            /home/testapp/app.py --callable app processes 4 --stats <a href="http://127.0.0.1:9191" rel="noreferrer" target="_blank">127.0.0.1:9191</a><br>
            <br>
            /etc/systemd/system/testapp.service<br>
            [Unit]<br>
            Description=wsgi flask testapp<br>
            [Service]<br>
            ExecStart=uwsgi --socket <a href="http://127.0.0.1:8082" rel="noreferrer" target="_blank">127.0.0.1:8082</a> --wsgi-file
            /home/testapp/app.py --callable app --processes 4<br>
            Restart=always<br>
            KillSignal=SIGQUIT<br>
            Type=notify<br>
            StandardError=syslog<br>
            NotifyAccess=all<br>
            <br>
            [Install]<br>
            WantedBy=multi-user.target<br>
            <br>
            sudo service testapp start ==> error<br>
            <br>
            The only difference we see between Flask not booting and
            Bottle working is in the app run statement<br>
            Flask:<br>
            if __name__ == '__main__':<br>
              app.run()<br>
            <br>
            Bottle:<br>
            if __name__ == '__main__':<br>
                bottle.run(host="127.0.0.1",port=8082)<br>
            else:<br>
                app = application = bottle.default_app()<br>
            <br>
            <br>
            maybe app run issue ??<br>
            maybe permission issue ?? (but wsgi ini works for bottle)<br>
            maybe systemd service file ??<br>
            <br>
            thks.<span><font color="#888888"><br>
                <br>
                -- <br>
                Tiger Nassau, Inc.<br>
                <a href="http://www.tigernassau.com" rel="noreferrer" target="_blank">www.tigernassau.com</a><br>
                <br>
                _______________________________________________<br>
                Flask mailing list<br>
                <a href="mailto:Flask@python.org" target="_blank">Flask@python.org</a><br>
                <a href="https://mail.python.org/mailman/listinfo/flask" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/flask</a><br>
              </font></span></blockquote>
        </div>
        <br>
        <br clear="all">
        <div><br>
        </div>
        -- <br>
        <div>
          <div dir="ltr">
            <div><b><br>
                Jeff Widman</b></div>
            <div><a href="http://www.jeffwidman.com/" target="_blank">jeffwidman.com</a> | <a value="+15102897784" style="color:rgb(17,85,204)">740-WIDMAN-J (943-6265)</a> </div>
            <div><><</div>
          </div>
        </div>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      <pre>_______________________________________________
Flask mailing list
<a href="mailto:Flask@python.org" target="_blank">Flask@python.org</a>
<a href="https://mail.python.org/mailman/listinfo/flask" target="_blank">https://mail.python.org/mailman/listinfo/flask</a>
</pre>
    </blockquote>
    <br>
    <br>
    </div></div><span class="HOEnZb"><font color="#888888"><pre cols="72">-- 
Tiger Nassau, Inc.
<a href="http://www.tigernassau.com" target="_blank">www.tigernassau.com</a></pre>
  </font></span></div>

</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><b><br>Jeff Widman</b></div><div><a href="http://www.jeffwidman.com/" target="_blank">jeffwidman.com</a> | <a value="+15102897784" style="color:rgb(17,85,204)">740-WIDMAN-J (943-6265)</a> </div><div><><</div></div></div>
</div>