tomcat前面的apache和重定向无法正常工作
我有一个运行在amazon linux服务器上的grails应用程序,我有一个tomcat,在前端添加了一个apache,以便将domain.com重定向到www.domain.com。在谷歌上搜索了很多之后,我可以让它工作,但后来我意识到,当我点击domain.com时,它被重定向到www.domain.com//(最后两个斜杠)。再次通过谷歌搜索,我可以在位于/etc/httpd/conf.d的tomcat.conf文件中使用以下配置:tomcat前面的apache和重定向无法正常工作,apache,.htaccess,tomcat,grails,Apache,.htaccess,Tomcat,Grails,我有一个运行在amazon linux服务器上的grails应用程序,我有一个tomcat,在前端添加了一个apache,以便将domain.com重定向到www.domain.com。在谷歌上搜索了很多之后,我可以让它工作,但后来我意识到,当我点击domain.com时,它被重定向到www.domain.com//(最后两个斜杠)。再次通过谷歌搜索,我可以在位于/etc/httpd/conf.d的tomcat.conf文件中使用以下配置: <VirtualHost *:80>
<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>
编辑2:我删除了从domain.com重定向到www.domain.com的行,我仍然存在这个问题,随机要求我下载一个文件,而不是显示在站点上,我可以在JS控制台中看到下一条消息:
解释为文档但使用MIME类型应用程序/八位字节流传输的资源:“domain.com”
编辑:只是为了澄清一下,我在这篇文章中将我的域名改成了一个通用的“域”对于将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>
ServerName域名.com
重定向/http://www.domain.com/
服务器名www.domain.com
ProxyPass/http://www.domain.com:8080/
ProxyPassReverse/http://www.domain.com:8080/
代理主机
命令拒绝,允许
通融
您是否尝试过清除浏览器缓存?是的,我认为这与缓存无关,错误是随机发生的。我不太确定这是tomcat的问题Apache是前端并在将请求传递给tomcat之前接收请求。任何重定向等都将由apache处理。但是,tomcat配置可能还有另一个问题。我不怎么使用tomcat,所以在那里帮不了什么忙。
<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>