2017-04-16 16 views
0

で定義されたときProxyPassMatchパスを持つことができない、私は別のポートに要求をリダイレクトしようとしているが、私はこのエラーを取得しています:別のポートにリダイレクトすることはProxyPassを取得|場所

ProxyPass|ProxyPassMatch can not have a path when defined in a location. 

これは、私の仮想ホストのリダイレクト:<location>セクション内にネスト

<VirtualHost *:80> 
     ServerName sub.domain.com.br 
     DocumentRoot /var/www/html/xxx 
     ServerAlias www.sub.domain.com.br 
     Options -Indexes 

     ProxyRequests On 
     ProxyPreserveHost On 

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

     <Location /> 
       ProxyPass /route/ www.sub.domain.com.br:31311/ 
       ProxyPassReverse /route/ www.sub.domain.com.br:31311/ 
     </Location> 

     ErrorLog ${APACHE_LOG_DIR}/bot_error.log 
     CustomLog ${APACHE_LOG_DIR}/bot_access.log combined 


</VirtualHost> 

答えて

0

ProxyPassProxyPassReverse句は、最初のパラメータが省略持っている必要があります。これもまた意味があります。プロキシされた "擬似位置"は<location XXX>レベルで定義されなければなりません。

あなたの設定例では、このように変更することを検討してください。

<VirtualHost *:80> 
    ServerName sub.domain.com.br 
    DocumentRoot /var/www/html/xxx 
    ServerAlias www.sub.domain.com.br 
    Options -Indexes 

    ProxyRequests On 
    ProxyPreserveHost On 

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

    <Location /route/>         # <== 
     ProxyPass www.sub.domain.com.br:31311/   # <== 
     ProxyPassReverse www.sub.domain.com.br:31311/ # <== 
    </Location> 

    ErrorLog ${APACHE_LOG_DIR}/bot_error.log 
    CustomLog ${APACHE_LOG_DIR}/bot_access.log combined 
</VirtualHost>