Debian
如果我嘗試在 localhost 上使用 ProxyPass 將不同的服務公開為子域,則 Apache 崩潰
我有多個網站和服務的以下目錄結構
/var/www/html/site1 /var/www/html/site2 /var/www/html/site3 /var/www/html/serv1 /var/www/html/serv2
site1
文件夾託管一個網站site1domain.com
,我想公開託管在serv1
和serv2
文件夾中的 webapp 服務,以便將它們顯示為service1.site1domain.com service2.site1domain.com
所以我嘗試以
site1domain.conf
這種方式在文件中配置虛擬主機<VirtualHost *:80> ServerName site1domain.com ServerAlias www.site1domain.com DocumentRoot /var/www/html/site1 <Directory /var/www/html/site1> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost> <VirtualHost *:80> ServerName service1.site1domain.com ProxyPreserveHost On ProxyRequest Off ProxyPass "/" "localhost/serv1" ProxyPassReverse "/" "localhost/serv1" </VirtualHost> <VirtualHost *:80> ServerName service2.site1domain.com ProxyPreserveHost On ProxyRequest Off ProxyPass "/" "localhost/serv2" ProxyPassReverse "/" "localhost/serv2" </VirtualHost>
但是與服務相關的虛擬主機程式碼塊導致伺服器崩潰:exit with error code 1。
有人可以幫助我了解如何正確配置它們嗎?
怎麼樣:
<VirtualHost *:80> ServerName service1.site1domain.com DocumentRoot /var/www/html/serv1 </VirtualHost> <VirtualHost *:80> ServerName service2.site1domain.com DocumentRoot /var/www/html/serv2 </VirtualHost>
不需要 mod_proxy。
該錯誤是由您的
ProxyPass
和ProxyPassReverse
指令沒有 URL 的方案部分引起的。正確的語法是例如ProxyPass "/" "http://localhost/serv1" ProxyPassReverse "/" "http://localhost/serv1"
但是,Andrew 是正確的,因為此案例不需要反向代理,也不需要最佳技術。