Содержание

Настройка веб отчетов Python

Установка веб сервера

устанавливаем все необходимое 22.04

sudo apt-get install apache2 ssl-cert libtomcrypt1 libapache2-mod-wsgi-py3 python3.10 python3.10-venv

для 20,04 добавляем репы с питоном https://www.itsupportwale.com/blog/how-to-upgrade-to-python-3-10-on-ubuntu-18-04-and-20-04-lts/

Настройка веб сервера

Включаем ssl модуль:

sudo a2enmod ssl 

Отключаем сайт по умолчанию

sudo a2dissite 000-default.conf

создаем папки

mkdir /opt/ac/webreport
sudo mkdir /etc/apache2/ssl/

создаем сертификат

sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.pem -out /etc/apache2/ssl/apache.pem  -days 9999 -nodes

Создаем файл конфигурации для защищенного сайта.

sudo nano /etc/apache2/sites-available/default-ssl.conf
<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin webmaster@localhost

                ProxyPreserveHost On
                ProxyPass / http://127.0.0.1:8082/
                ProxyPassReverse / http://127.0.0.1:8082/

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                SSLEngine on
                SSLCertificateFile /etc/apache2/ssl/apache.pem

        </VirtualHost>
</IfModule>

Включаем сайты

sudo a2ensite default-ssl

Включаем модули

sudo a2enmod proxy proxy_http proxy_balancer lbmethod_byrequests

Перезапускаем апач:

sudo service apache2 restart

Установка Веб модуля

копируем файлы веб модуля в /opt/ac/webreport

редактируем

/opt/ac/webreport/.env

пишем туда настройки подключения к БД и меняем секретный ключ (просто генерим каждый раз на новом сервере любое кол-во букв и цифр)

проверяем что питон 3,10 или выше

# python3.10 -V
python3.10

2 - переходим в нужную папку и создаем окружение

# cd /opt/ac/webreport/
# python3.10 -m venv env

4 - ставим пакеты

активируем среду # source env/bin/activate

ставим пакеты

(env)# pip install -r requirements.txt

выходим из среды

(env)# deactivate

создаем файл запуска

nano start_report.sh

#!/bin/bash
cd /opt/ac/webreport
source env/bin/activate
python webreport.py
chmod +x start_report.sh

делаем файл службы

sudo nano /etc/systemd/system/ipreport.service
[Unit]
Description=ipreport
After=network.target
After=syslog.target
After=firebird.service

[Service]
Type=simple
ExecStart=/opt/ac/webreport/start_report.sh    
Restart=always
RestartSec=1
User=park
TimeoutAbortSec=2
TimeoutStopSec=2

[Install]
WantedBy=multi-user.target
sudo systemctl enable ipreport.service
sudo systemctl start ipreport.service

Альтернативный с переадресацией

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests
<VirtualHost *:80>
 ProxyPreserveHost On

 ProxyPass / http://127.0.0.1:8080/
 ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>

переадресация с хттпс

<VirtualHost *:666>
      SSLEngine on
      SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
      SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

      SSLProxyEngine On
      SSLProxyCheckPeerCN off
      SSLProxyCheckPeerExpire off

      ProxyPreserveHost On
      ProxyPass / https://100.87/
      ProxyPassReverse / https://100.87/
</VirtualHost>