Развертывание приложения Django на сервере Apache на CentOS 7

Я следую этой статье для развертывания приложения Django на Apache в CentOS 7.

У меня есть некоторые отличия по сравнению с этой статьей:

1 - я использовал порт 443 для https (на моей машине уже открыт порт 443 для my_app_dns)

2 - Мой файл конфигурации виртуального хоста /etc/httpd/conf.d/django.conf имеет следующий вид:

<VirtualHost *:80>
        ServerAdmin xxx@xxx.com
        ServerName my_app_dns
        DocumentRoot /home/centos/path_to_my_app

        Alias /static /home/centos/path_to_my_app/static
        <Directory /home/centos/path_to_my_app/static>
                Require all granted
        </Directory>

        #ErrorLog /logs/apis_error.log
        #CustomLog /logs/apis_access.log combined

        WSGIPassAuthorization On
        WSGIDaemonProcess my_app python-path=/home/centos/path_to_my_app:/home/centos/.local/share/virtualenvs/my_app-8BiokhAz/lib/python3.9/site-packages
        WSGIProcessGroup my_app
        WSGIScriptAlias / /home/centos/path_to_my_app/wsgi.py

        <Directory /home/centos/path_to_my_app>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>
</VirtualHost>

3 - Мое приложение использует базу данных Postgres вместо SQlite3.

В установлен DocumentRoot в /var/www. Я также установил самоподписанный SSL сертификат с помощью файла /etc/httpd/conf/httpd.conf). Ниже приведено некоторое содержимое файла etc/httpd/conf.d/ssl.conf:ssl.conf

Listen 443 https
...
<VirtualHost _default_:443>
DocumentRoot "/var/www"
ServerName my_app_dns:443
...
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
...
</VirtualHost>

При вышеуказанной настройке, когда я перехожу на https://my_app_dns, я вижу образец тестовой страницы Apache.

Если я изменяю <VirtualHost *:80> на <VirtualHost *:443> в файле /etc/httpd/conf.d/django.conf, переход к https://my_app_dns приводит к такой ошибке:

my_app_dns sends an invalid response
ERR_SSL_PROTOCOL_ERROR

Что я упускаю в этой последовательности установки, чтобы развернуть содержимое приложения Django вместо тестовой страницы Apache?

Вы можете удалить django.conf, и перенести настройки VirualHost в django.conf в ssl.conf и попробовать снова.

Вернуться на верх