====== Настройка веб отчетов 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/