2016-07-05 43 views
2

我有一個在亞馬遜linux服務器上運行的grails應用程序,我有一個tomcat並在前面添加了一個apache以便將domain.com重定向到www.domain.com 。經過Google搜索後,我可以使其工作,但後來我意識到,當我嘗試domain.com時,它被重定向到www.domain.com//(最後兩個斜槓)。再次谷歌搜索我可以使它與下面的配置,位於/etc/httpd/conf.d一個tomcat.conf文件工作:apache在tomcat和重定向工作不正常

<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文件,有時它可以工作,但顯示了兩個斜槓,而且它也發生了,當我進入domain.com它被轉換爲www.www.domain.com(兩個萬維網),所以不知道它是什麼使這項工作很好,有時甚至沒有。

望着Tomcat的日誌,我可以看到這個,我認爲這可能是相關的:

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) 

編輯2:我刪除了行做從domain.com重定向到www.domain.com和我仍然遇到這個問題,隨機我要求下載文件而不是顯示站點,並且我可以在JS控制檯中看到下一條消息: 將資源解釋爲文檔,但是使用MIME類型application/octet-流:「domain.com」

編輯:只是爲了澄清,我改變了我的域名在這個職位的通用'域'

+0

您是否嘗試清除瀏覽器緩存? –

+0

是的,我不認爲它的緩存相關,錯誤發生隨機 – nelson687

+0

我不太確定它的一個tomcat問題Apache是​​前端,並在將它傳遞給tomcat之前接收請求。任何重定向等都將由apache處理。但是,tomcat配置可能存在另一個問題。我不使用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>