Apache-2.4

Apache 似乎忽略了埠 80 vhost

  • October 29, 2017

這在今天早些時候有效(​​或似乎有效),但我最近重新啟動了我的伺服器,現在 Apache 似乎沒有確認我的埠 80 虛擬主機。

我的網站是從 /var/www/example.com/public_html 提供的,埠 80應該重定向到 HTTPS。在我的伺服器重新啟動之前,這是可行的;現在它沒有重定向,而是從 /var/www/html 提供預設內容。

我不確定伺服器重啟後是否需要啟動某些程序或服務?該站點已啟用,並且埠 443 虛擬主機按預期工作。Apache 版本是 2.4.27,作業系統是 Ubuntu 17.10。這是我在 /etc/apache2/sites-available/example.com.conf 中的 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>塊中使用的內容相匹配

引用自:https://serverfault.com/questions/880827