У меня есть различные поддомены, успешно настроенные в качестве виртуальных хостов на моем Digital Ocean Droplet. Однако по какой-то причине мой последний поддомен обслуживает другой поддомен, и я не знаю почему. Итак, если вы пойдете в selingo.mikeheavers.com
он обслуживает содержание exhibitcolumbus.mikeheavers.com
. Кроме того, если вы просто введете IP-адрес моей капли, она будет обслуживать exhibitcolumbus.mikeheavers.com
- Я ожидал, что он будет просто служить mikeheavers.com
. Что я перепутала?
Я установил оба поддомена через файл .conf и sudo a2ensite [file.com.conf]
Это содержимое selingo.mikeheavers.com.conf:
<VirtualHost *:80>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ServerAdmin mheavers@gmail.com
ServerName selingo.mikeheavers.com
ServerAlias www.selingo.mikeheavers.com
DocumentRoot /var/www/selingo/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
LogLevel warn rewrite:trace8
RewriteEngine On
RewriteCond %{SERVER_NAME} =selingo.mikeheavers.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
</VirtualHost>
и это Expositcolumbus.com.conf:
<VirtualHost *:80>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ServerName exhibitcolumbus.mikeheavers.com
ServerAlias www.exhibitcolumbus.mikeheavers.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/exhibitcolumbus/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
LogLevel warn rewrite:trace8
RewriteEngine on
RewriteCond %{SERVER_NAME} =exhibitcolumbus.mikeheavers.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
Я тоже заметил это в своем /etc/hosts
файл, и я не уверен, откуда взялась первая запись - я не помню, как его настраивал:
127.0.1.1 extra extra
127.0.0.1 localhost
Я также использую letsencrypt для SSL, возможно, это вызывает проблемы? Я видел, что он также создал несколько файлов conf, но они в основном такие же, как и выше, с добавлением:
SLCertificateFile /etc/letsencrypt/live/exhibitcolumbus.mikeheavers.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/exhibitcolumbus.mikeheavers.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/exhibitcolumbus.mikeheavers.com/chain.pem
Я также установил записи A для каждого поддомена в моей капле, которые указывают на мой IP-адрес (http://107.170.120.88/), который, как ни странно, также не обслуживает мой основной домен (должно быть то, что вы видите на mikeheavers.com)
Я вижу это когда вхожу apachectl -S
:
AH00112: Warning: DocumentRoot [/var/www/html] does not exist
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
*:443 is a NameVirtualHost
default server exhibitcolumbus.mikeheavers.com (/etc/apache2/sites-enabled/exhibitcolumbus.mikeheavers.com-le-ssl.conf:2)
port 443 namevhost exhibitcolumbus.mikeheavers.com (/etc/apache2/sites-enabled/exhibitcolumbus.mikeheavers.com-le-ssl.conf:2)
alias www.exhibitcolumbus.mikeheavers.com
port 443 namevhost mikeheavers.com (/etc/apache2/sites-enabled/mikeheavers.com-le-ssl.conf:2)
port 443 namevhost prototypes.mikeheavers.com (/etc/apache2/sites-enabled/prototypes.mikeheavers.com-le-ssl.conf:2)
*:80 is a NameVirtualHost
default server 127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost 127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)
port 80 namevhost exhibitcolumbus.mikeheavers.com (/etc/apache2/sites-enabled/exhibitcolumbus.mikeheavers.com.conf:1)
alias www.exhibitcolumbus.mikeheavers.com
port 80 namevhost mosaic.mikeheavers.com (/etc/apache2/sites-enabled/mosaic.mikeheavers.com.conf:1)
port 80 namevhost prototypes.mikeheavers.com (/etc/apache2/sites-enabled/prototypes.mikeheavers.com.conf:1)
port 80 namevhost selingo.mikeheavers.com (/etc/apache2/sites-enabled/selingo.mikeheavers.com.conf:1)
alias www.selingo.mikeheavers.com
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Как мне распутать тот беспорядок, который я натворил?
Вы не создали виртуальный хост для обслуживания https://selingo.mikeheavers.com/. Таким образом, при доступе к этому URL-адресу Apache выбирает виртуальный хост по умолчанию, который, согласно вашему списку, является default server exhibitcolumbus.mikeheavers.com
.
Вам просто нужно создать новый виртуальный хост для обслуживания этого сайта.