3

So I have a flask application running using uWSGI on Nginx. Nginx is set to call my app at the location /app. So in my flask application I have to take into account the /app part when I map the url to a function. Is there a way to rewrite the nginx file or the uwsgi config.xml file to have the application think it is running from the / directory? And are there any side effects?

Just as an example:

the page http://mysite.com/app/ links to my index.py module

my index.py module uses Flask, so the route mapping goes like this:

@app.route('/app/')
    def hello_world():
        return 'Hello World!'

I am wondering if I can change the config files so I could write:

@app.route('/')
   def hello_world():
       return 'Hello World!'

Instead?

3

Mount your app in the subdir in uWSGI with

--mount /app=myfile.py --callable app --manage-script-name

it should work without modifying code or using wsgi middlewares

  • Is this a change I can make to my uwsgi xml configuration file? – eatonphil Jan 2 '13 at 17:53
1

I made it work by the following nginx config:

location ~ ^/app {
    charset utf-8;
    include uwsgi_params;
    uwsgi_pass uwsgicluster;
    uwsgi_param SCRIPT_NAME /app;
    uwsgi_modifier1 30;
}

and run uwsgi with --mount and --mange-script-name as @roberto. eg.

uwsgi --socket 0.0.0.0:3031\ 
            --pythonpath  . \
            --mount /app=./app.py \ 
            --manage-script-name \
            --callable app

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.