Я разрабатываю программы на Python, и у меня есть фляжный файл, который их запускает. Теперь я пытаюсь запустить flask автоматически из Nginx и связать их с uWSGI. Не работает и зависает.
Я следил за этой страницей. Вот ссылка: https://vladikk.com/2013/09/12/serving-flask-with-nginx-on-ubuntu/ Я выполнил все необходимые шаги и получил ошибку 502 bad gateway. при выполнении
uswgi --ini /var/www/tg/tg_uswgi.ini
я получаю следующее
[uSWGI] getting INI configuration from /var/www/tg/tg_uwsgi.ini
после этого я ничего не получаю. Когда я запускаю свой сервер, он все равно выдает мне 502 Bad gateway.
это мое tg_nginx.conf
server {
listen 80;
server_name localhost;
charset utf-8;
client_max_body_size 75M;
location / { try_files $uri @yourapplication; }
location @yourapplication {
include uwsgi_params;
uwsgi_pass unix:/var/www/tg/tg_uwsgi.sock;
}
}
это мой tg_uwsgi.ini
[uwsgi]
#application's base folder
base = /var/www/tg
#python module to import
app = fileforflk //fileforflk is my flask file which calls other python
//files
module = %(app)
home = %(base)/venv
pythonpath = %(base)
#socket file's location
socket = /var/www/demoapp/%n.sock
#permissions for the socket file
chmod-socket = 666
#the variable that holds a flask application inside the module imported at line #6
callable = app
#location of log files
logto = /var/log/uwsgi/%n.log
это мой фляжный файл
from flask import Flask
import browser //python file the flask is calling
app = Flask(_name_)
@app.route('/test',methods= ['GET'])
def result():
return ("success")
if _name_ == '_main_':
app.run(host = '0.0.0.0',port=5000)
После получения конфигурации INI терминал ничего не показывает, и сервер по-прежнему возвращает неверный шлюз. Пожалуйста, помогите мне с этим.
Вы должны определить:
socket = /var/www/demoapp/%n.sock
А также :
uwsgi_pass unix:/var/www/tg/tg_uwsgi.sock;
должно совпадать. Так, например, определить:
socket = /var/www/tg/%n.sock
А также :
sudo chown -R www-data:www-data /var/www/tg/
sudo chown -R www-data:www-data /var/log/uwsgi/
Я изменил его с demoapp на tg. все еще застревает в терминале. он говорит [uSWGI] getting INI configuration from /var/www/tg/tg_uwsgi.ini
и никаких результатов.
у кого-нибудь есть файл *.sock
в /var/www/tg/
?
У меня есть файл tg_uwsgi.sock в /var/www/tg/
В журнале ошибок nginx я получаю connect() to Unix:/var/www/tg/tg_uwsgi.sock failed (13: permission Denied) while connecting to upstream
так что chown
nginx:nginx
или www-data:www-data
для /var/www/tg/tg_uwsgi.sock
, только что обновил ответ
использовал chown
и изменил разрешения, теперь получаю connect() to Unix:/var/www/tg/tg_uwsgi.sock failed (111 : connection refused) while connecting upstream
.
В журнале ошибок Uwsgi я не получаю модуль с названием «кодировки». PythonHome правильно настроен на /var/www/tg/venv, где venv — папка моей виртуальной среды. Пожалуйста, помогите мне с этим.
pip install encodings
пожалуйста, создайте новый вопрос, если это будет сделано.
if __name__ == '__main__':
обратите внимание на двойное подчеркивание.