Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 29, 2019 07:22:36

dbalor
Зарегистрирован: 2018-07-02
Сообщения: 73
Репутация: +  0  -
Профиль   Отправить e-mail  

flask wsgi production

Здравстуйте закидываю сайт на хост - выдает ошибку:

 ...
 * Serving Flask app "main" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
...

Как настроить wsgi в продакшен?

конф апача:
 <VirtualHost *:80>
   ServerAdmin webmaster@site
   ServerName  site
   WSGIScriptAlias / /var/www/domains/site/wsgi.py
    WSGIProcessGroup site
    WSGIScriptReloading On 
    WSGIPassAuthorization On
   <Directory "/var/www/domains/site/">
      Require all granted
   </Directory>
   <Directory "/var/www/domains/site/static/">
      Require all granted
   </Directory>
   Alias   /static    "/var/www/domains/site/static"
</VirtualHost>

Отредактировано dbalor (Окт. 29, 2019 07:34:51)

Офлайн

#2 Ноя. 3, 2019 05:14:26

dbalor
Зарегистрирован: 2018-07-02
Сообщения: 73
Репутация: +  0  -
Профиль   Отправить e-mail  

flask wsgi production

Настроил wsgi - запустил.

теперь в логах выдает ошибку

  AH01276: Cannot serve directory /var/www/.../: No matching DirectoryIndex (index.html,index.html,index.html.var,index.php,index.phtml) found, and server-generated directory index forbidden by Options directive
На странице 403 Forbidden

Папка сайта и ее содержимое поставил права 755
 <VirtualHost 0.0.0.0:80>
    ServerName  site
    ServerAlias *.site
    CustomLog   /var/log/httpd/site.access_log combined
    ErrorLog    /var/log/httpd/site.error_log
    DocumentRoot    /var/www/domains/site
    WSGIDaemonProcess  user=umy group=mysite threads=5
    WSGIScriptAlias /site /var/www/domains/site/mysite.wsgi
    <Directory /var/www/domains/site>
        WSGIApplicationGroup %{GLOBAL}
        WSGIScriptReloading On
        Require all granted
    </Directory>
</VirtualHost>

Подскажите пожалуйста где ошибка?.

Отредактировано dbalor (Ноя. 3, 2019 05:16:08)

Офлайн

#3 Ноя. 4, 2019 00:39:29

dbalor
Зарегистрирован: 2018-07-02
Сообщения: 73
Репутация: +  0  -
Профиль   Отправить e-mail  

flask wsgi production

Вот мой wsgi скрипт(mysite.wsgi):

 from moysite import app as application
import sys
sys.path.insert(0, '/var/www/domains/site/')
activate_this = '/var/www/domains/site/mysite/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
(moysite-это скрипт python, а mysite - папка виртуальное окружение)
python2.7

Отредактировано dbalor (Ноя. 4, 2019 00:39:51)

Офлайн

#4 Ноя. 4, 2019 05:06:23

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

flask wsgi production

Лично мне лень разбраться, так что просто оставлю несколько тезисов.

1. Я никогда не использовал .wsgi (отдельно запускал backend с локальным портом) и никогда не разрешал Apache читать что-то реальное из ФС. У тебя весь код, конфиги и пр. выложены в публичный доступ или легко могут стать публичными, для меня это дикость. У меня всегда DocumentRoot указывает на пустую директорию, если очень надо, то там размещается только статика.

2. Впервые вижу такой финт “activate_this.py”. Почему не сделать как у белых людей “#!…/bin/python”?

3. У тебя “WSGIScriptAlias” задан для URL “/site”? Какой адрес не открывается? Корень, так он и не должен открываться без “index.html” или другой хрени. “http:/domain/site” тоже не открывается? Помнишь путь “/cgi-bin/”?

4. Смотри версии модулей, апачей и возраст рецептов, пробуй другие рецепты, не очень умно упереться рогом только в один. У кого-то 10 лет назад случайно получилось, а ты следуешь его примеру, хотя сам автор не понял что произошло. Вот пример для Graphite: https://graphite.readthedocs.io/en/latest/config-webapp.html. Но вместо тупого копирования, читай про каждый параметр.

Удачи.



Офлайн

#5 Ноя. 4, 2019 08:34:38

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

flask wsgi production

Кто вообще надоумил запускать питоний сайт под Апачем?



Офлайн

#6 Ноя. 4, 2019 11:37:13

dbalor
Зарегистрирован: 2018-07-02
Сообщения: 73
Репутация: +  0  -
Профиль   Отправить e-mail  

flask wsgi production

FishHook
Кто вообще надоумил запускать питоний сайт под Апачем?
Хост такой

Настраивал отсюда
https://flask-russian-docs.readthedocs.io/ru/latest/deploying/mod_wsgi.html

Буду пробовать

Офлайн

#7 Ноя. 4, 2019 12:11:19

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

flask wsgi production

По ссылке "WSGIScriptAlias / /var/www/…“, а не ”WSGIScriptAlias /site /var/www/…", если что :-). Попробуй подкинуть ему index.html, куда хочет, для проверки. Может где-то прав на доступ к директории не хватает или ещё чего.



Офлайн

#8 Ноя. 5, 2019 02:01:54

dbalor
Зарегистрирован: 2018-07-02
Сообщения: 73
Репутация: +  0  -
Профиль   Отправить e-mail  

flask wsgi production

bw
По ссылке “WSGIScriptAlias / /var/www/…“, а не ”WSGIScriptAlias /site /var/www/…”, если что :-). Попробуй подкинуть ему index.html, куда хочет, для проверки. Может где-то прав на доступ к директории не хватает или ещё чего.

"WSGIScriptAlias / /var/www/…“ не пашет,
закинул в папку site html - работает, но у меня по проекту все html в папки templates. Открываю html c помощью render_template('main.html')


Офлайн

#9 Ноя. 5, 2019 04:32:31

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

flask wsgi production

Что значит не пашет?
Адрес /site открывается (в старой конф.)?



Офлайн

#10 Ноя. 5, 2019 07:27:51

dbalor
Зарегистрирован: 2018-07-02
Сообщения: 73
Репутация: +  0  -
Профиль   Отправить e-mail  

flask wsgi production

Открывается, спасибо разобрался! Заработало!

Отдельное спасибо bw

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version