устанавливаем все необходимое 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>