2016-07-05 2 views
2

У меня есть приложение grails, работающее на сервере amazon linux, у меня есть tomcat и добавлен apache на передней панели, чтобы domain.com перенаправлялся на www.domain.com , После многократного поиска я мог заставить его работать, но потом я понял, что когда я опробовал domain.com, он перенаправлялся на www.domain.com// (в конце концов, два слэша). Погуглить снова я мог заставить его работать со следующей конфигурацией в файле tomcat.conf расположенном в /etc/httpd/conf.d: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> 

проблема, что теперь иногда все работает, как ожидалось, но иногда, когда я перейдите на домен.com Я получаю окно загрузки с просьбой загрузить файл DMS, и иногда он работает, но показывает две черты, и также случалось, что когда я ввел domain.com, он был преобразован на www.www.domain.com (два www), поэтому не уверен, что это делает эту работу прекрасной, иногда, а иногда и нет.

Глядя на журналы 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) 

EDIT 2: Я удалил линии, чтобы сделать переадресацию с domain.com к www.domain.com и У меня все еще есть эта проблема, когда случайно меня попросят загрузить файл, а не показывать его на сайте, и я мог видеть в консоли JS следующее сообщение: Ресурс, интерпретируемый как документ, но переданный с помощью приложения типа MIME/октет- stream: "domain.com"

EDIT: просто для уточнения, я изменил свое доменное имя для общего «домена» в этом сообщении

+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> 
Смежные вопросы