У меня в работе есть приложение flask с mod_wsgi на apache, которое прослушивает порт 7443. Пока все работает правильно.
Я перешел на контейнер docker и сначала он работал.
secure-wifi.wsgi
<VirtualHost *:7443>
ServerName mycompany.com
# Python application integration
WSGIDaemonProcess /secure-wifi processes=4 threads=20 python-path=/var/www/secure-wifi/:/usr/bin/python3 home=/var/www/secure-wifi/
WSGIProcessGroup /secure-wifi
WSGIScriptAlias / /var/www/secure-wifi/secure-wifi.wsgi
SSLEngine on
SSLCACertificateFile /var/www/secure-wifi/app/ssl/ca_join_icpedu.crt
SSLCertificateFile /var/www/secure-wifi/app/ssl/mycompany.com.crt
SSLCertificateKeyFile /var/www/secure-wifi/app/ssl/mycompany.com.key.npw
ErrorLog "${APACHE_LOG_DIR}/app-ssl-error.log"
CustomLog "${APACHE_LOG_DIR}/app-ssl-access.log" combined
<Directory "/var/www/secure-wifi/app/">
Header set Access-Control-Allow-Origin "*"
WSGIProcessGroup /secure-wifi
WSGIApplicationGroup %{GLOBAL}
Options +ExecCGI
Order deny,allow
Allow from all
</Directory>
Alias /static /var/www/secure-wifi/app/static
<Directory /var/www/secure-wifi/app/static/>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
docker -compose.yml
version: '3.7'
services:
web:
build:
context: .
restart: always
hostname: securewifi
ports:
- "7443:7443"
volumes:
- "./app_data:/data/db"
- "./ssh_keys:/root/.ssh"
Что я пробовал:
# Dockerfile
...
RUN sed -i 's/Listen 443/Listen 7443/g' /etc/apache2/ports.conf
...
# reverse proxy on apache
<VirtualHost *:443>
ServerName mycompany.com
ProxyPass / http://0.0.0.0:7443/
ProxyPassReverse / http://0.0.0.0:7443/
...
Я хотел бы сделать обратный прокси для 443 или даже использовать traefik на docker.
Есть идеи?