====== Настройка веб отчетов 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
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
Включаем сайты
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
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
переадресация с хттпс
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/