Назад | Перейти на главную страницу

Apache, похоже, игнорирует порт 80 vhost

Это работало (или казалось, что так) ранее сегодня, но я недавно перезапустил свой сервер, и теперь Apache, похоже, не подтверждает мой виртуальный хост порта 80.

Мой сайт обслуживается с /var/www/example.com/public_html и порта 80 должен перенаправлять на HTTPS. До перезапуска моего сервера это работало; теперь он не перенаправляет и обслуживает контент по умолчанию из / var / www / html.

Я не уверен, есть ли какой-то процесс или служба, которые мне могли понадобиться для запуска после перезапуска сервера? Сайт включен, и порт 443 vhost работает должным образом. Версия Apache - 2.4.27, ОС - Ubuntu 17.10. Это мой файл conf в /etc/apache2/sites-available/example.com.conf.

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule ssl_module modules/mod_ssl.so

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html

    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTPS} !=on
        RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
    </IfModule>
</VirtualHost>

<VirtualHost *:443>
    SSLEngine On
    SSLCertificateKeyFile /etc/ssl/private/example_com.key
    SSLCertificateFile /etc/ssl/certs/example_com.crt
    SSLCertificateChainFile /etc/ssl/certs/example_com.ca-bundle

    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    ProxyPreserveHost On
    ProxyPass /api http://localhost:1337/api
    ProxyPassReverse /api http://localhost:1337/api

    <directory /var/www/example.com/public_html/>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted

        <IfModule mod_rewrite.c> 
            RewriteEngine On
            RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
            RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule (.*) index.html [L]
        </IfModule> 
    </directory>
</VirtualHost>

У вас есть где-то в вашей конфигурации (ах) следующее?

NameVirtualHost *:80
NameVirtualHost *:443

Они должны соответствовать тому, что вы используете в <VirtualHost> блоки