• bottle + uwsgi + nginx

    View Comments

    Ya en otro post comenté como hacer funcionar nginx + uwsgi en modo vhost, para poder tener multiples aplicaciones con uwsgi.

    Ahora bien, estoy probando hacer mini-apps web como bottle framework pero me topé con que la mayoria de los tutoriales que hay dando vueltas para hacer deploy de apps de bottle con uwsgi, no hacen referencia a modo vhost.

    Este es un ejemplo de una app bootle (llamado example.py):

    import os, sys
    sys.path.append(os.path.dirname(__file__))
    # path where bottle was installed
    sys.path.append('/usr/local/lib/python2.7/dist-packages')
    from bottle import route, run, default_app
    
    @route('/')
    def hello():
        return "Welcome to example!"
    
    if __name__ == "__main__":
        # Interactive mode
        run(host='localhost', port=8080)
    else:
        # Mod WSGI launch
        os.chdir(os.path.dirname(__file__))
        application = default_app()

    Desde nginx, configurar un virtualhost, que llame directamente el archivo de la aplicacion:

    location / {  
        include uwsgi_params;  
        uwsgi_param UWSGI_CHDIR /path/to/bottle/app;  
        uwsgi_param UWSGI_MODULE example;  
        uwsgi_pass  127.0.0.1:1088;  
    }

    Adicionalmente, si queremos que la aplicacion bottle corra desde un virtualenv en la anterior definicion del virtualhost es necesario agregar el siguiente parametro

        uwsgi_param UWSGI_PYHOME /path/to/bottle/virtualenv
  • blog comments powered by Disqus