Настройка Nginx для автоматического запуска фляги с помощью uwsgi

Я разрабатываю программы на 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 терминал ничего не показывает, и сервер по-прежнему возвращает неверный шлюз. Пожалуйста, помогите мне с этим.

if __name__ == '__main__': обратите внимание на двойное подчеркивание.
Klaus D. 09.04.2019 07:03
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
93
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны определить:

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 и никаких результатов.

Kavvya Ramarathnam 09.04.2019 06:58

у кого-нибудь есть файл *.sock в /var/www/tg/?

Thanh Nguyen Van 09.04.2019 07:09

У меня есть файл tg_uwsgi.sock в /var/www/tg/

Kavvya Ramarathnam 09.04.2019 07:14

В журнале ошибок nginx я получаю connect() to Unix:/var/www/tg/tg_uwsgi.sock failed (13: permission Denied) while connecting to upstream

Kavvya Ramarathnam 09.04.2019 07:35

так что chownnginx:nginx или www-data:www-data для /var/www/tg/tg_uwsgi.sock, только что обновил ответ

Thanh Nguyen Van 09.04.2019 08:08

использовал chown и изменил разрешения, теперь получаю connect() to Unix:/var/www/tg/tg_uwsgi.sock failed (111 : connection refused) while connecting upstream.

Kavvya Ramarathnam 09.04.2019 08:27

В журнале ошибок Uwsgi я не получаю модуль с названием «кодировки». PythonHome правильно настроен на /var/www/tg/venv, где venv — папка моей виртуальной среды. Пожалуйста, помогите мне с этим.

Kavvya Ramarathnam 10.04.2019 06:52
pip install encodings пожалуйста, создайте новый вопрос, если это будет сделано.
Thanh Nguyen Van 10.04.2019 06:53

Другие вопросы по теме