Centos
httpd vhosts 配置(使用 Varnish)- 1 個伺服器 /w 多個域
我一直在閱讀有關此主題的多個問題,但似乎無法使其正常工作…
我有一台執行 CentOS 的伺服器,HTTPD 在預設的 httpd 根目錄下執行 1 個網站:
Listen 8080 DocumentRoot "/var/www/html" <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory>`
我也在執行 Varnish:Varnish 正在監聽 80 埠並將請求轉發到正在監聽 8080 埠的 httpd
現在我想在這台伺服器上執行第二個域,所以我在 /etc/httpd/conf/ 下添加了一個 .conf 文件,內容如下:
<VirtualHost *:8080> ServerAdmin root@localhost DocumentRoot /var/www/vhosts/domainx.be ServerName domainx.be ErrorLog logs/domainx-error_log CustomLog logs/domainx-access_log common </VirtualHost>
當我應用上述內容時,所有流量(包括根域的流量)都被路由到 domainx。當我將 vhost 的埠更改為 80 時,domainx 被轉發到根主機。
這是我第一次在沒有安裝 Plesk of Webmin 之類的東西的情況下這樣做,所以我不知道從哪裡開始……
- 為您的網站創建一個指向文件根目錄的虛擬主機。記得添加
NameVirtualHost *:8080
.- 將後端配置放在一個文件中,然後根據請求的主機名包含它:
if (req.http.Host == "domainx.be") { 包括“/etc/varnish/domainx.be.vcl”; }
為每個虛擬主機創建虛擬主機條目,甚至是“真實”站點,並且不要忘記包含 ServerName。那應該可以修復您的 Apache 設置。
就我個人而言,我也總是在 127.0.0.1 埠 80 上執行 apache,在公共 IP 埠 80 上執行 Varnish。這樣你就不會遇到 $_SERVER 變數認為 Varnish 在埠 8080 上執行的問題。