如何将Java应用程序置于Apache HTTP服务器之后

过去 ,将Apache HTTP服务器置于Java应用程序服务器或Java应用程序本身的前面是很常见的事情。

其背后的原因非常简单,可以以简单的方式添加缓存,还可以添加负载平衡,并且在此静态内容之上可以由Apache HTTP提供服务,而所有其他请求可以由Java应用程序提供服务。

Apache HTTP服务器

尽管此设置不是新功能,但我仍然会定期遇到它,并且看到很多人仍然对如何设置此设置有疑问。

假设您要拦截对静态文件的所有请求并从硬盘驱动器提供服务,而所有其他请求都需要传递给Tomcat。

安装Apache HTTP服务器后,下一步是添加特定模块

  • mod_proxy
  • mod_proxy_http
  • mod_rewrite

在某些系统上,可以通过这种方式完成

 $ a2enmod rewrite  $ a2enmod proxy  $ a2enmod proxy_http 

之后,需要更新Apache HTTP服务器的此配置文件。 找到conf文件

 <VirtualHost *: 80 > 
    .......  </VirtualHost> 

添加重写规则,该规则将拦截对静态的所有调用并将其更改为从硬盘提供服务

 # rewrite from static to it shark static  RewriteEngine on  RewriteRule ^/ static /(.+) /itshark/$ 1 [L,PT]  Alias "/itshark" "/location/on/disk" 

这样,我们对Apache HTTP说,所有以/ static开头的URL请求都应重写为/ itshark /

之后,我们说所有对/ itshark的请求应从/ location / on / disk提供 。 我们还需要将此部分添加到配置中,以便Apache HTTP能够访问它。

 <Directory "/location/on/disk" > 
         Options None 
         AllowOverride None 
         Require all granted  </Directory> 

根据您的操作系统和Apache HTTP版本,此文件应位于主conf文件中(例如:/etc/apache2/apache2.conf)或VirtualHost的conf文件中(例如:/ etc / apache2 / sites-enabled / 000- default.conf)。

文件名和位置取决于系统和Apache HTTP版本

现在剩下的就是将所有其余流量发送到Apache Tomcat。

为此,我们需要将此添加到VirtualHost conf文件中

 ProxyPassMatch ^/(itshark)/.*$ !  ProxyPass / http: //localhost:8080/ connectiontimeout=300 timeout=300 retry=3  ProxyPreserveHost On  ProxyVia On 

就是这样。 对/ static /的所有请求将最终在/ location / on / disk /中 ,而其他所有请求都将发送到Apache Tomcat。

翻译自: https://www.javacodegeeks.com/2019/03/java-behind-apache-http-server.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值