Мой веб-сервер содержит основной домен и поддомен с Apache2, причем основным является просто страница-заполнитель HTML, а поддоменом является приложение python / django.
Я столкнулся с интересной проблемой, которая возниклаЧерез некоторое время после добавления записи A в мои настройки DNS (в GoDaddy), чтобы включить поддомен и связанный с ним Apache VirtualHost.
Проблема заключается в том, что переход на мой поддомен www.testing.mysite.com
работает, но основной домен,www.mysite.com
, приводит к ошибке 400 Bad Request.Первоначально работали и основной, и поддомен.
SSL был включен как для основного, так и для поддоменов VirtualHosts с Let's Encrypt с перенаправлением с http на https, и работал нормально для обоих, пока проблема не возникла внезапно.
Записи GoDaddy выглядят следующим образом
Type Name Value TTL
a @ xx.xx.xxx.xxx 600 seconds
a admin xx.xx.xxx.xxx 1 Hour
a staging xx.xx.xxx.xxx 1 Hour
a testing xx.xx.xxx.xxx 1 Hour
cname www @ 1 Hour
Конфигурация Apache для основного домена выглядит следующим образом:
<VirtualHost *:80>
ServerName mysite.com
ServerAlias www.mysite.com
ServerAdmin admin@mysite.com
DocumentRoot /var/www/mysite/public_html
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
#Include conf-available/serve-cgi-bin.conf
RewriteEngine on
RewriteCond %{SERVER_NAME} =mysite.com [OR]
RewriteCond %{SERVER_NAME} =www.mysite.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:443>
ServerName mysite.com
ServerAlias www.mysite.com
ServerAdmin admin@mysite.com
DocumentRoot /var/www/mysite/public_html
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
#Include conf-available/serve-cgi-bin.conf
SSLCertificateFile /etc/letsencrypt/live/mysite.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mysite.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
Конфигурация Apache для субдомена выглядит следующим образом:
WSGIDaemonProcess mysite_demo python-path=/var/www/mysite-testing
WSGIProcessGroup mysite_demo
WSGIScriptAlias / /var/www/mysite-testing/mysite_demo/wsgi.py
<VirtualHost *:80>
ServerAdmin admin@mysite.com
DocumentRoot /var/www/mysite-testing
ServerAlias www.testing.mysite.com
ServerName testing.mysite.com
Alias /static /var/www/mysite-testing/static
<Directory /var/www/mysite-testing/static>
Require all granted
</Directory>
<Directory /var/www/mysite-testing/mysite_demo>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =testing.mysite.com [OR]
RewriteCond %{SERVER_NAME} =www.testing.mysite.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:443>
ServerAdmin admin@mysite.com
DocumentRoot /var/www/mysite-testing
ServerAlias www.testing.mysite.com
ServerName testing.mysite.com
Alias /static /var/www/mysite-testing/static
<Directory /var/www/mysite-testing/static>
Require all granted
</Directory>
<Directory /var/www/mysite-testing/mysite_demo>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /etc/letsencrypt/live/testing.mysite.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/testing.mysite.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
Буду признателен за любую помощь в выяснении этого.Спасибо.