如何将Java应用程序置于Apache HTTP服务器之后
在過去 ,將Apache HTTP服務器置于Java應用程序服務器或Java應用程序本身的前面是很常見的事情。
其背后的原因非常簡單,可以以簡單的方式添加緩存,還可以添加負載平衡,并且在此靜態內容之上可以由Apache HTTP提供服務,而所有其他請求可以由Java應用程序提供服務。
盡管此設置不是新功能,但我仍然會定期遇到它,并且看到很多人仍然對如何設置此設置有疑問。
假設您要攔截對靜態文件的所有請求并從硬盤驅動器提供服務,而所有其他請求都需要傳遞給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 # rewrite from 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
總結
以上是生活随笔為你收集整理的如何将Java应用程序置于Apache HTTP服务器之后的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是linux开发交流发展的信息和资源
- 下一篇: java美元兑换,(Java实现) 美元