2016-07-05 12 views
2

amazon Linuxサーバーでgrailsアプリケーションを実行していて、domain.comをwww.domain.comにリダイレクトするためにtomcatがあり、フロントにApacheが追加されています。グーグルで多くの検索を行った後、私はそれを動作させることができましたが、私はdomain.comに向かったときにwww.domain.com//にリダイレクトされていたことに気付きました(最後に2つのスラッシュ)。私はそれが/etc/httpd/conf.dに位置tomcat.confファイルに以下の設定で動作させることができ、再びグーグル:Tomcatの前にApacheがあり、リダイレクトが正常に動作しない

<VirtualHost *:80> 
    ServerName www.domain.com 
    ServerAlias domain.com 
    ProxyRequests Off 
    ProxyPreserveHost On 

    ErrorLog /var/log/httpd/tomcat.error.log 
    CustomLog /var/log/httpd/tomcat.log combined 

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

    ProxyPass/ajp://localhost:8009/ 
    ProxyPassReverse/ajp://localhost:8009/ 
    RewriteEngine On 
    RewriteCond %{HTTP_HOST} !^www\. [NC] 
    RewriteRule ^/(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 
</VirtualHost> 

問題が予想されるようになりました、時にはすべてが動作しますが、時にはときに私ということですdomain.comに行くDMSファイルをダウンロードするように要求するダウンロードボックスが表示され、時には2つのスラッシュが表示され、domain.comに入ったときにwww.www.domain.comに変換された2つのwwwの)ので、ときどきうまくいかないことがあります。

Jul 05, 2016 11:02:20 PM org.apache.coyote.AbstractProcessor  setErrorState 
INFO: An error occurred in processing while on a non-container  thread. The connection will be closed immediately 
java.net.SocketException: Broken pipe 
at java.net.SocketOutputStream.socketWrite0(Native Method) 

EDIT 2:私はwww.domain.comにdomain.comからリダイレクトを行うためのラインを削除し、

Tomcatのログを見て、私はそれが関連している可能性が考えている、これを見ることができます私はまだランダムに私はサイトを表示する代わりにファイルをダウンロードするよう依頼されているので、次のメッセージがJSコンソールに表示されます: リソースはドキュメントとして解釈されますが、MIMEタイプapplication/octet-ストリーム: "domain.com"

EDIT:この記事では、私のドメイン名を一般的な「ドメイン」に変更しました

+0

あなたはブラウザのキャッシュを消去しようとしましたか? –

+0

はい、私はそれがキャッシュに関連しているとは思わない、エラーはランダムに発生します – nelson687

+0

私はTomcatの問題を特定していないので、Apacheはフロントエンドであり、tomcatに渡す前にリクエストを受け取ります。リダイレクトなどはすべてapacheによって処理されます。しかし、Tomcatの設定には別の問題があるかもしれません。私は多くのことを助けることができないので、多くの場合、風邪を使わないでください。 –

答えて

0

RewriteEngineは、domain.comをwww.domain.comにリダイレクトするためのビットオーバーキルです。これは私がtomcatのインストールに使用しているものです。あなたのajpラインもうまくいきます:

<VirtualHost *:80> 
    ServerName domain.com 
    Redirect/http://www.domain.com/ 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName www.domain.com 
    ProxyPass/http://www.domain.com:8080/ 
    ProxyPassReverse/http://www.domain.com:8080/ 
    ProxyPreserveHost On 
    <Proxy *> 
     Order deny,allow 
     Allow from all 
    </Proxy> 
</VirtualHost> 
関連する問題