Я решил обновить наш сервер redash до версии 5, дело в том, что redsah поставляется из коробки с nginx в качестве веб-сервера и gunicorn в качестве сервера приложений и Flask, и я хотел использовать uwsgi в качестве приложениясервер, поэтому я изменил следующую строку:
exec /usr/local/bin/gunicorn --timeout 300 -b 0.0.0.0:5000 --name redash -w${REDASH_WEB_WORKERS:-4} redash.wsgi:app
на:
exec /usr/local/bin/uwsgi --ini redash.ini
где redash.ini
:
[uwsgi]
module = redash.wsgi:app
harakiri = 300
master = true
processes = 4
threads = 4
thunder-lock = true
socket = :5000
protocol = http
enable-threads = true
callable = app
disable-logging=False
Мой проект выглядит так:
app
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Dockerfile
├── Dockerfile.cypress
├── Jenkinsfile
├── LICENSE
├── Makefile
├── README.md
├── bin
│ ├── bundle-extensions
│ ├── docker-entrypoint
│ ├── flake8_tests.sh
│ ├── get_changes.py
│ ├── pack
│ ├── pre_compile
│ ├── release_manager.py
│ ├── run
│ └── upgrade
├── client
│ └── app
├── docker-compose.production.yml
├── docker-compose.yml
├── manage.py
├── netlify.toml
├── now.json
├── package-lock.json
├── package.json
├── pytest.ini
├── redash
│ ├── __init__.py
│ ├── admin.py
│ ├── authentication
│ ├── cli
│ ├── destinations
│ ├── extensions.py
│ ├── handlers
│ ├── metrics
│ ├── models.py
│ ├── monitor.py
│ ├── permissions.py
│ ├── query_runner
│ ├── serializers.py
│ ├── settings
│ ├── tasks
│ ├── templates
│ ├── utils
│ ├── version_check.py
│ ├── worker.py
│ └── wsgi.py
├── redash.ini
├── requirements.txt
├── requirements_all_ds.txt
├── requirements_dev.txt
├── requirements_oracle_ds.txt
├── setup
│ ├── README.md
│ ├── docker-compose.yml
│ ├── generate_key.sh
│ ├── packer.json
│ └── setup.sh
├── setup.cfg
├── tests
│ ├── __init__.py
│ ├── factories.py
│ ├── handlers
│ ├── models
│ ├── query_runner
│ ├── tasks
│ ├── test_authentication.py
│ ├── test_cli.py
│ ├── test_configuration.py
│ ├── test_handlers.py
│ ├── test_models.py
│ ├── test_permissions.py
│ └── test_utils.py
└── webpack.config.js
проблема в том, что когда я переключаюсь на uwsgi и пытаюсь перейти на экран входа в систему, я получаю TemplateNotFound
исключение из flask
при попытке извлечь файл login.html
.
Iничего не изменилось в проекте, кроме строки исполнения выше, и она отлично работает с gunicorn
.Любая идея, что в uwsgi может вызвать это исключение?почему uwsgi ведет себя по-другому и не может найти папку с шаблонами?