Каталог перезаписи колбы nginx uwsgi как базовый каталог в приложении
Итак, у меня есть приложение фляги, работающее с использованием uWSGI на Nginx. Nginx настроен для вызова моего приложения в местоположении / app. Таким образом, в моем приложении для фляги я должен учитывать часть / app, когда я сопоставляю URL с функцией. Есть ли способ переписать файл nginx или файл config.xml uwsgi, чтобы приложение считало, что оно работает из каталога /? И есть ли побочные эффекты?
Просто в качестве примера:
страница http://mysite.com/app/ ссылается на мой модуль index.py
мой модуль index.py использует Flask, поэтому отображение маршрута выглядит так:
@app.route('/app/')
    def hello_world():
        return 'Hello World!'
Мне интересно, могу ли я изменить конфигурационные файлы, чтобы я мог написать:
@app.route('/')
   def hello_world():
       return 'Hello World!'
Вместо?
2 ответа
Смонтируйте ваше приложение в поддиректории в uWSGI с помощью
--mount /app=myfile.py --callable app --manage-script-name
он должен работать без изменения кода или использования промежуточного программного обеспечения wsgi
Я сделал это с помощью следующей конфигурации nginx:
location ~ ^/app {
    charset utf-8;
    include uwsgi_params;
    uwsgi_pass uwsgicluster;
    uwsgi_param SCRIPT_NAME /app;
    uwsgi_modifier1 30;
}
и запустите uwsgi с --mount и --mange-script-name как @roberto. например.
uwsgi --socket 0.0.0.0:3031\ 
            --pythonpath  . \
            --mount /app=./app.py \ 
            --manage-script-name \
            --callable app