1. 程式人生 > >apache + tomcat動靜分離配置

apache + tomcat動靜分離配置

環境說明

線上環境使用apache+tomcat的形式部署應用程式,前端使用apache監聽80埠,後端使用tomcat部署應用。tomcat的靜態資源響應能力和併發處理能力均不如apache,經測試,apache響應靜態資源的速度比tomcat快10%左右。

因此,有必要減輕一下tomcat的負載,獲得更高的效能。基本思路就是將靜態資源交給apache響應,動態資源交給tomcat,下面貼出配置以及解說。

配置總覽

<LocationMatch "/app/(static/)?(css|flash|images|img|js)">
    ProxyPassMatch !
    <IFModule mod_headers.c>
Header set Cache-Control "max-age=604800" </IFModule> </LocationMatch> FileEtag None Alias /app/static /var/lib/tomcat7/webapps/app Alias /app /var/lib/tomcat7/webapps/app <Directory "/var/lib/tomcat7/webapps"> AllowOverride None Require all granted #apache2.4的配置,注意2.2可能不識別這個,需要改為
#Order Allow,Deny #Allow From All </Directory> #開啟反向代理 ProxyRequests off ProxyPass /app ajp://127.0.0.1:8009/app #訪問ajp協議時無需ProxyPassReverse

Apache和Tomcat的配置及說明

需要說明的是,這個反向代理使用了apache的模組proxy_ajp,並沒有使用http反向代理。開啟這個模組需要在apache的配置檔案中加上

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

ubuntu下安裝的apache直接使用命令a2enmod proxy_ajp即可

使用ajp做反向代理的原因主要有兩個,一個是proxy_ajp是apache的內建模組,使用配置方便,而且效能穩定,無需安裝第三方模組。第二個是apache和tomcat都是自家產品,整合起來方便,穩定性高,而且tomcat的文件中也是推薦使用ajp協議反向代理的。

在tomcat中需要開啟ajp埠,找到tomcat的server.xml中的AJP關鍵字,修改配置如下:

<Connector address="127.0.0.1" port="8009" URIEncoding="UTF-8" protocol="AJP/1.3" />

開啟AJP埠,如果無需對外可以只監聽127.0.0.1. 這樣apache就可以通過ProxyPass訪問到ajp://127.0.0.1:8009。

tomcat存放靜態資源的目錄一般固定,所以反向代理配置還是很容易的,使用LocationMatch用正則同時匹配多個靜態資源的目錄即可,使用Alias定義路徑別名,別忘了使用Directory配置段讓apache具有對目錄的訪問許可權。

apache對靜態資源處理很強大,可以稍微改一下靜態資源的響應,讓訪問效能提升。修改響應headers需要載入headers模組。

LoadModule headers_module modules/mod_headers.so

ubuntu下安裝的apache使用命令a2enmod headers即可。

讓瀏覽器快取靜態資源,對靜態資源加上Cache-Control "max-age=604800",告訴瀏覽器將靜態資源在本地快取一週。

FileEtag None告訴apache關閉Etag,apache會預設對靜態資源加上Etag頭,但是這個頭通常是不推薦使用的,我記得以前在哪本資料上看到過,說是雅虎的前端工程師們一致認為不使用ETag比較好,雖然ETag計算檔案的變化更準確一些,但是會有一些問題,因為ETag是檔案修改時間以及inode號之類的引數計算得到,會帶來額外的負載。而且在CDN加速時,由於CDN上的inode和伺服器不一致,導致CDN上ETag和伺服器不同而快取失效。所以通常情況下是不推薦使用ETag的,精確到秒級別的Last-Modified一般足夠使用了,一秒內多次修改靜態資源的機率並不高。

最終結果測試

最後,重啟apache生效,看一下最終結果:

直接訪問,可以看到靜態資源都是(from cache)

F5重新整理,可以看到靜態資源都是304

CTRL+F5強制重新整理,看一下靜態資源的響應頭 


修改響應頭資訊有效,帶上了Cache-Control,同時apache也自動為靜態資源加上了Last-Modified,同時刪掉了ETag,靜態資源快取成功。

再看一下tomcat的accesslog

192.168.1.45 - - [27/Oct/2014:09:56:55 +0800] "GET /app/customer/list HTTP/1.1" 200 29733
192.168.1.45 - - [27/Oct/2014:10:05:26 +0800] "GET /app/user/preChangePwd HTTP/1.1" 200 17140
192.168.1.45 - - [27/Oct/2014:10:05:29 +0800] "GET /app/user/showOrgInfo HTTP/1.1" 200 14318
192.168.1.45 - - [27/Oct/2014:10:05:32 +0800] "GET /app/customer/list HTTP/1.1" 200 29733
192.168.1.56 - - [27/Oct/2014:10:09:50 +0800] "GET /app/configuration/showConfigHistory HTTP/1.1" 200 17279
192.168.1.17 - - [27/Oct/2014:10:10:14 +0800] "GET /app/desktop HTTP/1.1" 302 -
192.168.1.17 - - [27/Oct/2014:10:10:14 +0800] "GET /app/auth/login HTTP/1.1" 200 11187
192.168.1.34 - - [27/Oct/2014:10:10:54 +0800] "GET /app/auth/login HTTP/1.1" 200 11187
192.168.1.34 - - [27/Oct/2014:10:10:59 +0800] "GET /app/auth/login HTTP/1.1" 200 11187
192.168.1.34 - - [27/Oct/2014:10:20:44 +0800] "GET /app/auth/login HTTP/1.1" 200 11187
192.168.1.34 - - [27/Oct/2014:10:20:46 +0800] "GET /app/auth/login HTTP/1.1" 200 11187
192.168.1.34 - - [27/Oct/2014:10:20:51 +0800] "GET /app/auth/login HTTP/1.1" 200 11187
192.168.1.34 - - [27/Oct/2014:10:21:04 +0800] "GET /app/auth/login HTTP/1.1" 200 11187
192.168.1.34 - - [27/Oct/2014:10:22:57 +0800] "GET /app/auth/login HTTP/1.1" 200 11187
192.168.1.34 - - [27/Oct/2014:10:23:50 +0800] "GET /app/auth/login HTTP/1.1" 200 11187

可以看到已經沒有靜態資源的請求資訊了,動靜分離成功!

相關推薦

apache + tomcat動靜分離配置

環境說明 線上環境使用apache+tomcat的形式部署應用程式,前端使用apache監聽80埠,後端使用tomcat部署應用。tomcat的靜態資源響應能力和併發處理能力均不如apache,經測試,apache響應靜態資源的速度比tomcat快10%左右。 因此,有必要

Nginx系列-8.配置Nginx+Apache實現動靜分離

Linux Nginx Apache 動靜分離 Nginx系列-8.配置Nginx+Apache實現動靜分離 目錄 - Nginx系列 Nginx系列-1.Linux下安裝Nginx Nginx系列-2.配置LNMP(Linux、Nginx、MySQL、PHP)架構 Nginx系列-3.

Linux下Nginx+Tomcat負載均衡和動靜分離配置要點

cep 修改 div -c user setsebool index.php sebool bool 本文使用的Linux發行版:CentOS6.7 下載地址:https://wiki.centos.org/Download 一、

nginx 的動靜分離配置tomcat

nginx+tomcat是想動靜分離配置首先在nginx的配置檔案中新增tomcat的的叢集配置upstream tomcats {  ip_hash;  server 192.168.0.251:8080;  server 192.168.0.252:8081;  serv

ApacheTomcat動靜分離(mod_jk)

由於目前專案併發量大,需優化伺服器效能,本文使用Apache的負載均衡做配置,使靜態檔案由Apache處理,動態頁面由Tomcat處理。本文中以xx.demo.com域名為案例。 準備前: 一、./etc/httpd/httpd.conf中先開啟訪問日誌,便於監控,可以在全

Apache Tomcat安裝、配置、啟動與後續操作步驟

文件解壓 相對 ref 自己的 控制臺 應用 為我 。。 start 1.第一,我們在安裝Apache Tomcat之前,我們首先安裝和配置好jdk; 2.第二,我們要清楚自己的jdk版本。因為我們Apache Tomcat配置的成功的前提是版本相對應。在這裏,博主是用下圖

Haproxy 基礎詳解及動靜分離配置

haproxy 動靜分離 haproxy 介紹 1 工作在ISO 七層 根據http協議(或者工作在ISO四層 根據tcp協議) 提供web服務的負載均衡調度器負載均衡調度器分類 工作在四層: # lvs 工作在七層: # nginx (web,http reverse proxy,cache

初識TomCat之3——TomCat動靜分離

tomcat 動靜分離 一、背景介紹在生產環境中tomcat很少直接用於響應客戶端請求,即使它可以通過Connector組件接收用戶的請求,一般來說常見於server.xml配置文件中Connector連接器的類型有3種:http、SSL和AJP 1.3在生產環境中,tomcat前端一般會有一個專門的

CentOS7.4—構建Apache+Nginx動靜分離

構建apache+nginx動靜分離構建Apache+Nginx動靜分離實驗目的:html靜態頁面由nginx處理,php動態頁面交給apache處理 目錄第一部分 準備工作第二部分 配置apache+nginx動靜分離第三部分 測試驗證 第一部分 環境準備一:服務器兩臺:Linux系統—CentOS

Nginx+Tomcat 動靜分離實現負載均衡

ado 重啟 bad 很多 root 得到 上網 str 文件的 0.前期準備使用Debian環境。安裝Nginx(默認安裝),一個web項目,安裝tomcat(默認安裝)等。 1.一份Nginx.conf配置文件 Nginx+Tomcat 動靜分離實現負載均衡Nginx+

apache tomcat ajp的配置

首先mod_proxy 和 mod_ajp_proxy 的配置要放開 <VirtualHost *:80> ServerName localhost DocumentRoot d:/wamp64/www <Directory "d:/wam

【轉載】Nginx+Tomcat 動靜分離實現負載均衡

0.前期準備   使用Debian環境。安裝Nginx(預設安裝),一個web專案,安裝tomcat(預設安裝)等。   1.一份Nginx.conf配置檔案 1 # 定義Nginx執行的使用者 和 使用者組 如果對應伺服器暴露在外面的話建議使用許可權較小的使用者 防止被入侵

Apache Tomcat伺服器安裝配置和部署執行

Apache Tomcat伺服器安裝配置和部署執行 在Windows 64位系統上安裝配置和部署執行Apache Tomcat伺服器。 1,先下載適應於64為Windows作業系統的Tomcat伺服器。 連線:http://tomcat.apache.org/ 我下載的是: 2,

使用docker搭建高併發網站架構實踐5--Docker實現Nginx+tomcat動靜分離

Docker+Nginx+Tomcat實現動靜分離 整體結構示意圖: 如上所示:docker啟動5個容器,dynamic-nginx動態nginx伺服器和static-nginx1, static_nginx2兩個靜態nginx伺服器,tomcat1和tomcat2伺

Mac Apache Tomcat WebServer 伺服器配置

1、配置準備工作 1)配置伺服器準備工作 在 Finder 中建立一個 “workspace” 的資料夾,可直接建立在 /Users/QianChia(當前使用者名稱)目錄下。 下載相關軟體

apache+tomcat二級域名配置方法

1、  環境 Apache2.0.43.0 Tomcat 4.1.13 mod_jk-2.0.43 jdk 1.4 Windows 2003 關鍵檔案位置: Server.xml:$tomcat_home\conf Httpd.conf:$apache_home\conf

web叢集之一 linux下apache+tomcat負載均衡配置-筆記

負載均衡叢集配置(7):Apache配置——建立workers.properties    httpd.conf的最後新增的配置中workers.properties檔案是不存在的,需要我們自己在apache/conf路徑下建立。workers.properties檔案用於對負載均衡的負載器worker (

Apache+Tomcat+JK叢集配置

轉:http://www.iteye.com/topic/1017961 參考:http://blog.csdn.net/parine26/article/details/4162326 第一步下載安裝apache:http://jingyan.baidu.com/arti

openssl+apache+tomcat生產機配置

圖中??是rose匯出後的亂碼!應為 "客戶"   圖中apache代表apache 2.0.55服務,worker為tomcat5.0.30服務,數字代表機子的IP,如06則代表 192.168.20.6這臺機子trans為交易撮合的伺服器!一、openssl-0.9.7i

apache tomcat虛擬路徑配置

1.開啟Tomcat\config下的server.xml檔案 2.找到<Host>標籤,在其內部寫入 <Context docBase="F:\java\upload\temp" path="/pic" reloadable="false"/>