Запустите приложение Flask на Apache: mod_wsgi, mod_proxy и uWSGI.

Чтобы запустить приложение Flask на Apache, у вас есть несколько вариантов. Ниже я объясню три распространенных метода вместе с примерами кода. Обратите внимание: в этих инструкциях предполагается, что на вашем сервере установлены Apache и Flask.

Метод 1: использование mod_wsgi

  1. Установить модуль mod_wsgi для Apache:

    sudo apt-get install libapache2-mod-wsgi-py3
  2. Создайте файл WSGI для приложения Flask. Предположим, ваш файл приложения Flask называется app.py. Создайте новый файл с именем myapp.wsgiи добавьте следующий код:

    import sys
    sys.path.insert(0, '/path/to/your/flask/application')
    from app import app as application
  3. Настройте Apache для использования файла WSGI. Откройте файл конфигурации Apache (обычно он находится по адресу /etc/apache2/sites-available/000-default.conf) и добавьте следующий код в раздел :

    WSGIScriptAlias / /path/to/your/wsgi/file/myapp.wsgi
    <Directory /path/to/your/flask/application>
       Require all granted
    </Directory>
  4. Перезапустите Apache:

    sudo service apache2 restart

Метод 2: использование mod_proxy

  1. Включите необходимые модули Apache:

    sudo a2enmod proxy
    sudo a2enmod proxy_http
  2. Настройте Apache для прокси-запросов к вашему приложению Flask. Откройте файл конфигурации Apache (обычно он находится по адресу /etc/apache2/sites-available/000-default.conf) и добавьте следующий код в раздел :

    ProxyPass / http://localhost:5000/
    ProxyPassReverse / http://localhost:5000/
  3. Перезапустите Apache:

    sudo service apache2 restart

Метод 3: использование uWSGI

  1. Установить uWSGI:

    pip install uwsgi
  2. Создайте файл конфигурации uWSGI. Предположим, ваш файл приложения Flask называется app.py. Создайте новый файл с именем myapp.iniи добавьте следующий код:

    [uwsgi]
    module = app
    callable = app
    master = true
    processes = 5
    socket = /path/to/your/socket/file.sock
    chmod-socket = 660
    vacuum = true
    die-on-term = true
  3. Запустите uWSGI, используя файл конфигурации:

    uwsgi --ini /path/to/your/uwsgi/config/file/myapp.ini
  4. Настройте Apache для пересылки запросов в uWSGI. Откройте файл конфигурации Apache (обычно он находится по адресу /etc/apache2/sites-available/000-default.conf) и добавьте следующий код в раздел :

    ProxyPass / unix:/path/to/your/socket/file.sock|uwsgi://localhost/
  5. Перезапустите Apache:

    sudo service apache2 restart