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