0

我有一個Apache 2.2.15 Web服務器運行在RedHat 6.4主機,我有限制的權限。Apache虛擬主機和反向代理不工作在非特權端口

我有一個httpd實例運行在我擁有的目錄中。這個實例擁有自己的等等,日誌,htdocs,conf等等以及到主Apache bin和模塊的符號鏈接。

DNS人員安排myinstance.example.com指向服務器的IP地址。

我也在我的httpd.conf中配置了VirtualHosts,因爲將來我可能需要在此服務器上運行多個實例。

我的VirtualHost的htttpd.conf中的Listen指令被設置爲端口8081,因此如果我轉到myinstance.example.com:8081,VirtualHost的htdoc中的index.html會顯示在我的瀏覽器中。

我想現在要做的,就是要「刪除」,從URL的端口號,並有myinstance.example.com解決的虛擬主機在8081

我增加了以下功能塊在在虛擬主機的httpd.conf的結束

<VirtualHost *:8081> 
    ServerAdmin [email protected] 
    DocumentRoot /apps/LAMP/dev/appname/hostname/htdocs 
    ServerName myinstance.example.com 
    ProxyPreserveHost On 
    ProxyPass/myinstance.example.com:8081/ 
    ProxyPassReverse/http://myinstance.example.com:8081/ 
    ErrorLog logs/error.log 
    CustomLog logs/access.log common 
</VirtualHost> 

,並在同一文件中,這些線路存在過:

LoadModule rewrite_module modules/mod_rewrite.so 
LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so 
LoadModule proxy_http_module modules/mod_proxy_http.so 
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 
LoadModule proxy_connect_module modules/mod_proxy_connect.so 
. 
. 
. 
ProxyRequests Off 
ProxyVia On 
ProxyPreserveHost On 

我開始使用我的Apache實例:

/usr/sbin/httpd -d /apps/LAMP/dev/appname/hostname -DPHP5 -f /apps/LAMP/dev/appname/hostname/etc/httpd.conf 

當我在我的Firefox瀏覽器myinstance.example.org(沒有端口號)點,我得到「無法連接錯誤」,並在error.log中最新的條目似乎並沒有被相關的問題。

[Tue Oct 07 13:59:28 2014] [error] (2)No such file or directory: mod_mime_magic: can't read magic file /apps/LAMP/dev/appname/hostname/conf/magic 
[Tue Oct 07 13:59:28 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) 
[Tue Oct 07 13:59:28 2014] [error] (2)No such file or directory: mod_mime_magic: can't read magic file /apps/LAMP/dev/appname/hostname/conf/magic 
[Tue Oct 07 13:59:28 2014] [notice] Digest: generating secret for digest authentication ... 
[Tue Oct 07 13:59:28 2014] [notice] Digest: done 
[Tue Oct 07 13:59:28 2014] [notice] Apache/2.2.15 (Unix) DAV/2 configured -- resuming normal operations 
[Tue Oct 07 13:59:51 2014] [error] server reached MaxClients setting, consider raising the MaxClients setting 

關於我可能做錯什麼想法?任何建議?

+0

你只是在你的配置做一個無限重定向循環。您創建了一個虛擬服務器來偵聽端口8081,並且您希望它代理所有傳入的請求並將它們發送到,猜測8081. 8081何處發送?它自己又將請求發送到8081. – alvits 2014-10-07 23:27:07

回答

0

首先,我會擺脫所有的錯誤。引起我的注意,它可能是一個顯示塞的一個是這樣的一個:

[error] server reached MaxClients setting 

考慮提高MaxClients設置

+0

MaxClients由於配置中的重定向循環而到達。這只是一個更大問題的症狀。 – alvits 2014-10-07 23:31:35

+0

是的,這是一個開發服務器,並沒有實際的客戶端連接到它,所以我想我會採用無限重定向循環理論。感謝您的指導 – 2014-11-04 17:28:51

0

它得到了通過使用80端口主要Apache實例充當反向代理固定。

我加入這個在/etc/httpd/conf/httpd.conf中結束

#Using host ip address 
<VirtualHost 10.18.1.20:80>  
    ServerAdmin [email protected] 
    #DocumentRoot /apps/LAMP/dev/appname/hostname/htdocs 
    ServerName myinstance.example.com 
    ProxyPreserveHost On 
    ProxyPass/http://myinstance.example.com:8081/ 
    ProxyPassReverse/http://myinstance.example.com:8081/ 
    ErrorLog logs/error.log 
    CustomLog logs/access.log common 
</VirtualHost>