- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在安装了最新 Apache2 的 Ubuntu 16.04 服务器上,我有不同的虚拟主机,
每个都正确配置(并使用 Let's Encrypt 保护):
- /etc/apache2/sites-enabled/my.site.com-le-ssl.conf
- /etc/apache2/sites-enabled/my.other.site.com-le-ssl.conf
指向下面的静态内容:
- /var/www/my.site.com/
- /var/www/my.other.site.com/
这很好用:
通过调用 https://my.site.com/
我看到了 /中包含的静态站点var/www/my.site.com/
.
然后我installed Tomcat 8.5.9和 secured it with a reverse proxy ,因此添加:
<VirtualHost *:443>
. . .
JKMount /* ajp13_worker
. . .
</VirtualHost>
到/etc/apache2/sites-enabled/my.site.com-le-ssl.conf 。
这也很好用:
通过调用 https://my.site.com/
现在我看到了 Tomcat 主页。
我想实现如下结果:
https://my.site.com/
我想查看静态站点 (/var/www/my.site.com/
); https://my.site.com/dynamic
我想查看 Tomcat 主页;https://my.site.com/dynamic/myApp
我希望运行在 tomcat/webapps
下发布的 myApp.war
;我的想法是这样的:
使 Apache JKMount 仅使用 /dynamic
上下文的请求,因此而不是:
<VirtualHost *:443>
. . .
JKMount /* ajp13_worker
. . .
</VirtualHost>
,我用过:
<VirtualHost *:443>
. . .
JKMount /dynamic/* ajp13_worker
. . .
</VirtualHost>
并且在 Apache 方面这似乎有效;调用my.site.com
会打开静态内容,而调用my.site.com/dynamic
会给出Tomcat 404。
现在我需要重写 URL 以删除 dynamic
上下文,以使其对 Tomcat 透明,并且我在过去 3 小时内尝试使用 Tomcat RewriteValve 来做到这一点:
我通过添加 Valve 编辑了 tomcat/conf/server.xml
:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
. . .
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />
</Host>
我创建了一个 tomcat/conf/Catalina/localhost/rewrite.config
文件,其中包含正确的规则(已测试 here ):
RewriteRule ^dynamic/(.+)$ /$1
出于某种原因,这不起作用。 Tomcat 的 RewriteValve 规则要么被忽略,要么发生故障,要么我对整个事情的看法有问题……我不是系统管理员,所以我不会对这里的一些幼稚错误感到惊讶。
你看出问题出在哪里了吗?还是另一种方法来完成这项工作?
最佳答案
我已经通过使用 mod_proxy_ajp
而不是 mod_jk
解决了这个问题。
Apache 的 my.site.com-le-ssl.conf
<VirtualHost *:443>
. . .
ProxyPass /dynamic/ ajp://localhost:8009/
ProxyPassReverse /dynamic/ ajp://localhost:8009/
. . .
</VirtualHost>
Tomcat的rewrite.config
RewriteRule ^dynamic(.+)$ dynamic/$1/ [R]
现在它可以正常工作了。
关于apache - 如何使 Tomcat 8.5 RewriteValve 与 AJP1.3 JKMount 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43764653/
是否可以使用 RewriteValve 以某种方式自定义嵌入式 tomcat ?正如我在 api 中看到的那样目前只有 addContextValves 的方法和 addEngineValves但正如
我正在 tomcat 中运行一个应用程序,我不允许更改其配置。因此,例如我的数据库连接配置在 tomcat/conf/Catalina/localhost/context.xml.default 现在
我正在从 JBoss 6.4.3 迁移到 JBoss 7.2,在部署期间看到了 Valves are no longer supported 警告。这来自一个 jboss-web.xml 文件:
前提 在安装了最新 Apache2 的 Ubuntu 16.04 服务器上,我有不同的虚拟主机, 每个都正确配置(并使用 Let's Encrypt 保护): /etc/apache2/sites-e
我是一名优秀的程序员,十分优秀!