2016-11-09 52 views
1

我有1個負載平衡器服務器和2個應用服務器負責分配。現在我有一個奇怪的問題,即Apache代理平衡器超出文件訪問限制

<Files ~ "^\.ht"> 
    Order allow,deny 
    Deny from all 
</Files> 

規則當請求轉發到應用程序服務器時不會觸發規則。

設置爲:

<Proxy balancer://catdefault> 
    BalancerMember http://xx.xxx.xxx:8081 
    BalancerMember http://xx.xxx.yyy:8081 
</Proxy> 

和虛擬主機我得到它包括這樣的:

ProxyPass/balancer://catdefault/ 
    ProxyPassReverse/balancer://catdefault/ 

奇怪的是,當我申請文件規則的應用服務器,它是一個餘額記錄器前。 http://xx.xxx.xxx:8081然後規則得到尊重。

現在我們同意不在應用程序服務器上使用makie rew rulles,因爲它們會在晚些時候或者其中很多時間和管理將會很重。

任何想法如何我可以使負載平衡器服務器的文件工作,而不是http://xx.xxx.xxx:8081服務器?

回答

1

<Directory><Files>指令將僅適用於駐留在文件系統中的對象。 也許這樣的事情可以幫助(未經測試):

ProxyPassMatch "(?i)\.ht([^/]*)$" ! 
ProxyPass/balancer://catdefault/ 
ProxyPassReverse/balancer://catdefault/ 
+0

很抱歉打擾,但我有aproblem這一個dous不想工作:ProxyPassMatch ^/CAT /報告/(.*)/cat/reports/handler.php ?path = $ 1 $ 2 我在想什麼? – Sangoku

+1

但是你到底想要達到什麼目的? –

+0

那麼,即時嘗試轉換這個RewriteRule^/貓/ birt-reports /(.*)/cat/birt-reports/handler.php?path=$1$2 [QSA,L]重寫規則與新的平衡器我們創造。我是大日本人。 – Sangoku