2016-05-28 11 views
0

私はapache http webserver 2.2.29をプロキシとして設定しました。その機能は、着信要求をバックエンドサーバーにリダイレクトすることです。以下はその流れです。Mod_rewriteがApacheで動作していません

クライアントは、URL https://iproxy.company.co.uk:8443/cis1を使用してリクエストを送信します。 Apacheインスタンスはiproxy.company.co.uk:8443でリッスンしています。このリクエストは、URL https://i.company.co.uk:8443のバックエンドサーバーに送信する必要があります。これを達成するために、mod_rewriteを使用しました。以下はhttpd-alias.confファイルで設定します。

`Listen iproxy.company.uk:8443 

ServerName  iproxy.company.uk:8443 

    DocumentRoot /app/ 
    RewriteEngine On 
    RewriteRule (.*)$ https://i.company.co.uk:8443$1 [R=301,L] 
    ProxyPassReverse "/products/widget/" "http://product.example.com/widget/" 
    RewriteLog /app/instance1/logs/rewrite.log 
    RewriteLogLevel 5 

    ErrorLog "/app/instance1/logs/error_log" 
    TransferLog "/app/instance1//logs/access_log" 

    SSLEngine on 
    SSLProtocol all -SSLv2 -SSLv3 
    SSLCipherSuite HIGH:!MEDIUM:!aNULL:!MD5:!RC4 
    SSLCertificateFile "/app/certificates/star.cer" 
    SSLCertificateKeyFile "/app/certificates/star.key" 
    SSLCertificateChainFile "/app/certificates/rootCAChain.pem" 
    CustomLog "/app/instance1/logs/ssl_request_log" \ 
     "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" 
    </VirtualHost>` 

私は書き換えログに下記取得していますレベル5に書き換えlogginをも構成しています。

私がチェックするために、コマンドの下に当たっていますリダイレクトが

出力

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <ahref="http://i.company.co.uk:8443/cis1">here</a>.</p> </body></html>

の下に取得

curl -k https://iproxy.company.co.uk:8443/cis1

を動作するか私はまた、以下を参照することができます書き換えログに出力されます。

redirect to https://i.company.co.uk:8443/ci1 [REDIRECT/301]

ので、私はリダイレクトが正常に動作していると仮定しています。しかし、そうではありません。サーバはリクエストを受けていませんか?私はコンフィギュレーションに何か間違っていますか?

更新: 私は最後に[P]を追加してRewriteRuleディレクティブを更新しました。これはうまくいって問題は解決しました。

RewriteRule (.*)$ https://sit-alfresco.rpmi.co.uk:443$1 [P]

答えて

0

あなたは戻って、その要求を行いますブラウザに301応答を送信しています。

これは、すべての時点でプロキシとして動作していません!

ブラウザがi.company.co.ukにアクセスすることさえできますか(その場合、プロキシが必要なのはなぜですか?)、またはサーバーからのみアクセスできるのです(この場合、書き換えは機能しません)。あなたが本当にプロキシにしたい場合は

これは、あなたが以下の設定でmod_proxyの使用する必要があります?

ProxyPass/https://i.company.co.uk:8443/ 
+0

ウィルはProxyPassが着信要求と同じURIを維持することができ、私はそれぞれに異なるようにURIを期待していますrequest – user2607367

+0

上記の設定では、https://iproxy.company.co.uk:8443/cis1のページhttps://i.company.co.uk:8443/cis1の内容が表示されます。他のページについても同様です。基本的にはホストをマッピングします。そのページの絶対参照はi.company.co.ukのままになります(ただし、これも同様です)。それがあなたが望んでいないものなら、私はそれがあなたの質問を明確にするのが最善だと思います。 –

+0

それは今私のために働いています。たくさんありがとう。私は答えに質問を更新しました – user2607367

関連する問題