Каталог перезаписи колбы 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