dockerize flask приложение с mod_wsgi на apache - PullRequest
0 голосов
/ 29 марта 2020

У меня в работе есть приложение 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.

Есть идеи?

...