We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
Как правильно сконфигурировать приложение bottle (bottle framework) на vestacp wsgi? Topic is solved
-
- Posts: 7
- Joined: Sat Jan 02, 2021 7:03 pm
- Os: Debian 8x
- Web: apache + nginx
Как правильно сконфигурировать приложение bottle (bottle framework) на vestacp wsgi?
Пытаюсь развернуть приложение bottle с помощью панели vestacp. Постоянно получаю ошибку 500 и, судя по всему, это из-за неправильной настройки сервера. Я пробовал различные варианты настройки, но всегда присутствовала неудача.
Я имею три файла конфигурации:
- wsgi.sh (для этого файла я не нашел информации о конфигурации, судя по всему он не правильно сконфигурирован, для django по умолчанию)
- wsgi.stpl (этот файл я пытался править но не увинчалось успехом)
- wsgi.tpl
файл запуска приложения (wsgi.py) выглядит так:
Ожидается что настройка конфигурации приведет к сообщению о том что нет определенной директории "/", а не к ошибки 500.
Сервер работает на debian 9, vestacp установлена последняя версия на момент написания вопроса.
Использовал эту инструкцию для настройки wsgi_mod
viewtopic.php?t=10867
Я имею три файла конфигурации:
- wsgi.sh (для этого файла я не нашел информации о конфигурации, судя по всему он не правильно сконфигурирован, для django по умолчанию)
Code: Select all
#!/bin/bash
# Adding php wrapper
user="$1"
domain="$2"
ip="$3"
home_dir="$4"
docroot="$5"
echo "# Wsgi template
AddHandler wsgi-script .wsgi
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.$2\.ru\$ [NC]
RewriteRule ^(.*)\$ http://$2/\$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\$ /django.wsgi/\$1 [QSA,PT,L]
" > $docroot/.htaccess
chown $user:$user $docroot/.htaccess
echo "import os, sys
sys.path.insert(0, '$home_dir/$user/web/$domain/private/django/$domain/env/lib/python2.6/site-packages')
sys.path.insert(0, '$home_dir/$user/web/$domain/private/django/$domain/project/src/shared/')
sys.path.insert(0, '$home_dir/$user/web/$domain/private/django/$domain/project/src/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'main.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()" > $docroot/django.wsgi
chown $user:$user $docroot/django.wsgi
exit 0
- wsgi.stpl (этот файл я пытался править но не увинчалось успехом)
Code: Select all
<VirtualHost %ip%:%web_ssl_port%>
ServerName %domain_idn%
%alias_string%
ServerAdmin %email%
DocumentRoot %sdocroot%
ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
Alias /vstats/ %home%/%user%/web/%domain%/stats/
Alias /error/ %home%/%user%/web/%domain%/document_errors/
SuexecUserGroup %user% %group%
CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
CustomLog /var/log/%web_system%/domains/%domain%.log combined
ErrorLog /var/log/%web_system%/domains/%domain%.error.log
<Directory %home%/%user%/web/%domain%/stats>
AllowOverride All
</Directory>
SSLEngine on
SSLVerifyClient none
SSLCertificateFile %ssl_crt%
SSLCertificateKeyFile %ssl_key%
%ssl_ca_str%SSLCertificateChainFile %ssl_ca%
<IfModule mod_ruid2.c>
RMode config
RUidGid %user% %group%
RGroups www-data
</IfModule>
<IfModule itk.c>
AssignUserID %user% %group%
</IfModule>
<IfModule mod_wsgi.c>
WSGIDaemonProcess apx-s$domain% user=%user% group=%user% processes=1 threads=5 display-name=%{GROUP} python-path=%home%/%user%/web/%domain%$
WSGIProcessGroup apx-idea
WSGIApplicationGroup %{GLOBAL}
</IfModule>
<Directory %sdocroot%>
AllowOverride FileInfo
Options ExecCGI Indexes
MultiviewsMatch Handlers
Options +FollowSymLinks
Order allow,deny
Allow from all
</Directory>
IncludeOptional %home%/%user%/conf/web/s%web_system%.%domain%.conf*
</VirtualHost>
- wsgi.tpl
Code: Select all
<VirtualHost %ip%:%web_port%>
ServerName %domain_idn%
%alias_string%
ServerAdmin %email%
DocumentRoot %docroot%
ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
Alias /vstats/ %home%/%user%/web/%domain%/stats/
Alias /error/ %home%/%user%/web/%domain%/document_errors/
SuexecUserGroup %user% %group%
CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
CustomLog /var/log/%web_system%/domains/%domain%.log combined
ErrorLog /var/log/%web_system%/domains/%domain%.error.log
<Directory %home%/%user%/web/%domain%/stats>
AllowOverride All
</Directory>
<IfModule mod_ruid2.c>
RMode config
RUidGid %user% %group%
RGroups www-data
</IfModule>
<IfModule itk.c>
AssignUserID %user% %group%
</IfModule>
<Directory %docroot%>
AllowOverride FileInfo
Options ExecCGI Indexes
MultiviewsMatch Handlers
Options +FollowSymLinks
Order allow,deny
Allow from all
</Directory>
Include %home%/%user%/conf/web/%web_system%.%domain%.conf*
</VirtualHost>
Code: Select all
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import bottle
import os
import sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
os.chdir(os.path.dirname(os.path.abspath(__file__)))
"""С этого файла запускается программа"""
application = bottle.default_app()
Сервер работает на debian 9, vestacp установлена последняя версия на момент написания вопроса.
Использовал эту инструкцию для настройки wsgi_mod
viewtopic.php?t=10867
-
- Support team
- Posts: 1111
- Joined: Tue Jul 30, 2013 10:18 pm
- Contact:
- Os: CentOS 6x
- Web: nginx + php-fpm
Re: Как правильно сконфигурировать приложение bottle (bottle framework) на vestacp wsgi?
Если у вас, как указано в профиле, используется nginx+apache - то зачем вы апач трогаете? Наружу смотрит только nginx.
В принципе, настройка любых нестандартных приложений (nodejs, ruby, python etc.) выглядит так:
1. Поднимаем приложение на недоступном извне порту
2. Проксируем запросы на него
3. Готово
В принципе, настройка любых нестандартных приложений (nodejs, ruby, python etc.) выглядит так:
1. Поднимаем приложение на недоступном извне порту
2. Проксируем запросы на него
3. Готово
-
- Posts: 7
- Joined: Sat Jan 02, 2021 7:03 pm
- Os: Debian 8x
- Web: apache + nginx
Re: Как правильно сконфигурировать приложение bottle (bottle framework) на vestacp wsgi?
Получилось запустить это все дело вот по этой инструкции
viewtopic.php?t=18352#p76197
viewtopic.php?t=18352#p76197