Apache-Httpd

限制所有其他域並僅在 apache 代理配置中提供 ServerName

  • September 7, 2017

在 RHEL 6 中使用 Apache HTTPD 2.2 Web 伺服器和基於名稱的虛擬主機。試圖為我的一個網站配置代理。(僅供參考:它用於 kibana 儀表板)

<VirtualHost 192.168.12.20:80>
   ServerName admin.kibana.com
   ServerAlias www.admin.kibana.com
   DocumentRoot /opt/kibana
   <Directory />
           Options FollowSymLinks
           AllowOverride None
   </Directory>
   <Directory /opt/kibana>
           Options -Indexes FollowSymLinks -MultiViews
           AllowOverride all
           Order allow,deny
           allow from all
   </Directory>

   ErrorLog logs/admin.error.log
   LogLevel error
   CustomLog logs/admin.log combined

   ProxyRequests off
   ProxyPreserveHost On
   ProxyVia On

   <Proxy *>
   Order deny,allow
   Allow from all
   </Proxy>

   ProxyPass / http://192.168.12.20:5601/
   ProxyPassReverse / http://192.168.12.20:5601/

</VirtualHost>

在 C:\Windows\System32\drivers\etc\hosts 中有本地主機條目,並且能夠查看頁面和內容,一切正常。

192.168.12.20  admin.kibana.com  www.admin.kibana.com

現在真正的問題來了。即使我嘗試瀏覽以下域,仍然會提供網頁

kibana.com
admin-kibana-com

使用重寫規則對我有幫助,但是它停止從後端伺服器為實際應用程序提供服務。我可以只使用代理和虛擬主機配置來做某事嗎?請建議。提前致謝。

如果您只有 1 個虛擬主機,這將用作所有請求的備份。你可以做什麼:

  • 拒絕所有其他域的 RewriteRule。如果你的不起作用,可能是你弄錯了。
  • 另一個將是預設的 VirtualHost,並且總是返回 503

https://httpd.apache.org/docs/current/vhosts/examples.html#purename

引用自:https://unix.stackexchange.com/questions/390958