<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 1, 2015 at 12:57 AM, Steve Martinelli <span dir="ltr"><<a href="mailto:stevemar@ca.ibm.com" target="_blank">stevemar@ca.ibm.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><p>Trying to summarize here... <br><br>  - There isn't much interest in keeping eventlet around.<br>  - Folks are OK with running keystone in a WSGI server, but feel they are constrained by Apache.<br>  - uWSGI could help to support multiple web servers.<br><br>My opinion:<br><br>  - Adding support for uWSGI definitely sounds like it's worth investigating, but not achievable in this release (unless someone already has something cooked up).<br></p></div></blockquote><div><br></div><div>What needs to change to support uWSGI? You can already run keystone in python uwsgi and then front it with nginx:<br><br> $ uwsgi --socket <a href="http://127.0.0.1:5001">127.0.0.1:5001</a> --wsgi-file $(which keystone-wsgi-public) --honour-stdin --enable-threads --workers 6<br> $ uwsgi --socket <a href="http://127.0.0.1:35358">127.0.0.1:35358</a> --wsgi-file $(which keystone-wsgi-admin) --honour-stdin --enable-threads --workers 6<br><br> $ sudo vi /etc/nginx/sites-available/keystone<br><br>server {<br>  listen 5000 default_server;<br>  server_name localhost;<br>  location / {<br>    include uwsgi_params;<br>    uwsgi_pass <a href="http://127.0.0.1:5001">127.0.0.1:5001</a>;<br>    uwsgi_param SCRIPT_NAME /;<br>  }<br>}<br>server {<br>  listen 35357 default_server;<br>  server_name localhost;<br>  location / {<br>    include uwsgi_params;<br>    uwsgi_pass <a href="http://127.0.0.1:35358">127.0.0.1:35358</a>;<br>    uwsgi_param SCRIPT_NAME /;<br>  }<br>}<br><br></div><div> $ sudo ln -x /etc/nginx/sites-available/keystone /etc/nginx/sites-enabled/</div><div><br></div><div> $ sudo nginx<br><br></div><div>and then you can make your regular curl calls.<br></div><div><br></div><div>Also, you can run keystone with regular http in python uwsgi (uwsgi --http)  and then just do normal reverse proxy (from Apache or nginx or whatever), which I think would be adequate for keystone.<br></div><div><br></div><div>We don't do anything in keystone to stop deployments in web servers other than Apache. Keystone is just a regular wsgi app. We document Apache since it's popular and it provides mod_shib, which is the only saml2 module for web servers that I know of. Keystone can work with other saml2 modules and in different servers, it just takes the environment variables that the module sets and runs it through some mapping code. The mapping code has been shown to work alternative authentication modules (for ldap and kerberos).<br></div><div><br></div><div>- Brant<br><br></div></div></div></div>