Tomcat服务器 Varnish代理服务器
Tomcat服務(wù)器
?概述
Java簡(jiǎn)介
Java是一種跨平臺(tái)的,面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,Java技術(shù)具有卓越的通用性,高效性,平臺(tái)移植性和安全性
體系
Java ?SE (標(biāo)準(zhǔn)版)
Java ?EE (企業(yè)版)
JDK簡(jiǎn)介
?JDK(Java ?Development ?Kit)是Sun針對(duì)Java開(kāi)發(fā)者推出的Java語(yǔ)言的軟件開(kāi)發(fā)工具包
?JDK是整個(gè)Java的核心
- 包括了Java的運(yùn)行環(huán)境
- ?Java工具(如編譯,排錯(cuò),打包等工具)
- Java基礎(chǔ)的類(lèi)庫(kù)
?JDK
JRE(Java Runtime Environment,Java運(yùn)行環(huán)境),JRE是JDK的子集
JRE包括
- ?Java虛擬機(jī)(jvm)
- Java核心類(lèi)庫(kù)和支持文件
- ?不包含開(kāi)發(fā)工具(JDK)--編譯器,調(diào)試器和其他工具
?Java Servlet
?
- Servlet是Java擴(kuò)展Web服務(wù)器功能的組件規(guī)范
- 常見(jiàn)的Servlet容器
| IBM? | websphere |
| Oracle? | weblogic |
| Apache | tomcat |
| RedHat | jboss |
Tomcat安裝
Tomcat工作原理
Connector----> 代表端口
Service--------> 提供服務(wù)
server----------> 服務(wù)器
host------------->?代表虛擬主機(jī)
當(dāng)客戶(hù)端從8080端口訪問(wèn)頁(yè)面,不僅可以訪問(wèn)上面的Host還能訪問(wèn)下面的Host
Apache和Nginx的每一個(gè)虛擬機(jī)主機(jī)都是和端口綁死的.Tomcat不是.
比如:做加密網(wǎng)站,Apache和Nginx配置了一個(gè)虛擬主機(jī),那么就是配置的那臺(tái)虛擬主機(jī)有加密功能
Tomcat只需配置一次加密,所有的網(wǎng)站都能享受加密功能,以下案例會(huì)展示
安裝部署Tomcat服務(wù)器
問(wèn)題
本案例要求部署Tomcat服務(wù)器,具體要求如下:
- 安裝部署JDK基礎(chǔ)環(huán)境
- 安裝部署Tomcat服務(wù)器
- 創(chuàng)建JSP測(cè)試頁(yè)面,文件名為test.jsp,顯示服務(wù)器當(dāng)前時(shí)間
然后客戶(hù)機(jī)訪問(wèn)此Web服務(wù)器驗(yàn)證效果:
- 使用火狐瀏覽器訪問(wèn)Tomcat服務(wù)器的8080端口,瀏覽默認(rèn)首頁(yè)
- 使用火狐瀏覽器訪問(wèn)Tomcat服務(wù)器的8080端口,瀏覽默認(rèn)測(cè)試頁(yè)面
?方案
使用2臺(tái)RHEL7虛擬機(jī),其中一臺(tái)作為T(mén)omcat服務(wù)器(192.168.2.100)、另外一臺(tái)作為測(cè)試用的Linux客戶(hù)機(jī)(192.168.2.5),如圖所示。使用RPM安裝JDK基礎(chǔ)環(huán)境,使用源碼安裝部署Tomcat服務(wù)器
步驟
步驟一:部署Tomcat服務(wù)器軟件(192.168.2.100/24)
1)使用RPM安裝JDK環(huán)境
在web1(192.168.2.100)上面安裝 [root@web1 ~]# yum -y install java-1.8.0-openjdk //安裝JDK(可以tab鍵) [root@web1 ~]# java -version //查看JAVA版本 openjdk version "1.8.0_161" OpenJDK Runtime Environment (build 1.8.0_161-b14) OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)2)安裝Tomcat(apache-tomcat-8.0.30.tar.gz軟件包,在lnmp_soft中有提供)
[root@web1 ~]# cd lnmp_soft/ [root@web1 lnmp_soft]# ls apache-tomcat-8.0.30.tar.gz apache-tomcat-8.0.30.tar.gz [root@web1 ~]# tar -xf apache-tomcat-8.0.30.tar.gz [root@web1 ~]# mv apache-tomcat-8.0.30 /usr/local/tomcat [root@web1 ~]# ls /usr/local/tomcat bin/ //主程序目錄 lib/ //庫(kù)文件目錄 logs/ //日志目錄 temp/ //臨時(shí)目錄 work/ //自動(dòng)編譯目錄jsp代碼轉(zhuǎn)換servlet conf/ //配置文件目錄 webapps/ //頁(yè)面目錄3)啟動(dòng)服務(wù)
[root@web1 ~]# /usr/local/tomcat/bin/startup.sh4)服務(wù)器驗(yàn)證端口信息
[root@web1 ~]# ss -nutlp |grep java //查看java監(jiān)聽(tīng)的端口 tcp 0 0 :::8080 :::* LISTEN 2778/java tcp 0 0 :::8009 :::* LISTEN 2778/java tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN 2778/java提示:如果檢查端口時(shí),8005端口啟動(dòng)非常慢,默認(rèn)tomcat啟動(dòng)需要從/dev/random讀取大量的隨機(jī)數(shù)據(jù),默認(rèn)該設(shè)備生成隨機(jī)數(shù)據(jù)的速度很慢,可用使用下面的命令用urandom替換random(非必須操作)。
[root@web1 tomcat]# strings /dev/random #Tomcat啟動(dòng)時(shí)會(huì)讀取random的隨機(jī)數(shù)據(jù),隨機(jī)數(shù)據(jù)越多,啟動(dòng)的越快 [root@web1 ~]# mv /dev/random /dev/random.bak [root@web1 ~]# ln -s /dev/urandom /dev/random另外,還可以使用方案二解決:
[root@web1 ~]# yum install rng-tools [root@web1 ~]# systemctl start rngd [root@web1 ~]# systemctl enable rngd5)客戶(hù)端瀏覽測(cè)試頁(yè)面(proxy作為客戶(hù)端)
[root@proxy~]# firefox ?192.168.2.100:8080查看Tomcat的默認(rèn)頁(yè)面是否存在
[root@web1 tomcat]# cd /usr/local/tomcat/webapps/ROOT/ [root@web1 ROOT]# ls asf-logo.png bg-middle.png bg-upper.png index.jsp tomcat.gif tomcat.svg asf-logo-wide.gif bg-nav-item.png build.xml RELEASE-NOTES.txt tomcat.png WEB-INF bg-button.png bg-nav.png favicon.ico tomcat.css tomcat-power.gif#一定要以.jsp為結(jié)尾步驟二:修改Tomcat配置文件
1)創(chuàng)建測(cè)試JSP頁(yè)面
[root@web1 ~]# vim /usr/local/tomcat/webapps/ROOT/test.jsp <html> <body> <center> Now time is: <%=new java.util.Date()%> //顯示服務(wù)器當(dāng)前時(shí)間 </center> </body> </html>步驟三:驗(yàn)證測(cè)試
1)客戶(hù)端瀏覽測(cè)試頁(yè)面(proxy充當(dāng)客戶(hù)端角色)
[root@proxy ~]# firefox http://192.168.2.100:8080 [root@proxy ~]# firefox http://192.168.2.100:8080/test.jsp使用Tomcat部署虛擬主機(jī)
問(wèn)題
使用Tomcat部署加密虛擬主機(jī),實(shí)現(xiàn)以下要求:
- 實(shí)現(xiàn)兩個(gè)基于域名的虛擬主機(jī),域名分別為:www.a.com和 www.b.com
- 使用www.a.com域名訪問(wèn)的頁(yè)面根路徑為/usr/local/tomcat/a/ROOT
- 使用www.b.com域名訪問(wèn)的頁(yè)面根路徑為/usr/local/tomcat/b/base
- 訪問(wèn)www.a.com/test時(shí),頁(yè)面自動(dòng)跳轉(zhuǎn)到/var/www/html目錄下的頁(yè)面
- 訪問(wèn)頁(yè)面時(shí)支持SSL加密通訊
- 私鑰、證書(shū)存儲(chǔ)路徑為/usr/local/tomcat/conf/cert
- 每個(gè)虛擬主機(jī)都擁有獨(dú)立的訪問(wèn)日志文件
- 配置tomcat集群環(huán)境
?
方案
修改server.xml配置文件,創(chuàng)建兩個(gè)域名的虛擬主機(jī),修改如下兩個(gè)參數(shù)塊:
?
步驟
- 步驟一:配置服務(wù)器虛擬主機(jī)
1)修改server.xml配置文件,創(chuàng)建虛擬主機(jī)
[root@web1 ~]# vim /usr/local/tomcat/conf/server.xml 123 <Host name="www.a.com" appBase="a" 124 unpackWARs="true" autoDeploy="true"> 125 </Host> 126 <Host name="www.b.com" appBase="b" 127 unpackWARs="true" autoDeploy="true"> 128 </Host> 129 <Host name="localhost" appBase="webapps" 130 unpackWARs="true" autoDeploy="true">#在原本的123行復(fù)制模板,粘貼在123行之上,做兩個(gè)虛擬主機(jī),appBase表示這個(gè)目錄下面的子目錄將自動(dòng)被部署為應(yīng)用unpackWARs表示自動(dòng)解壓autoDeploy表示自動(dòng)部署更新#嚴(yán)格區(qū)分大小寫(xiě)!!!!!!!!!!2)創(chuàng)建虛擬主機(jī)對(duì)應(yīng)的頁(yè)面根路徑
[root@web1 ~]# mkdir -p /usr/local/tomcat/{a,b}/ROOT [root@web1 ~]# ls /usr/local/tomcat/a ROOT [root@web1 ~]# ls /usr/local/tomcat/b ROOT [root@web1 ~]# echo "aaaaa" > /usr/local/tomcat/a/ROOT/index.html [root@web1 ~]# echo "bbbbb" > /usr/local/tomcat/b/ROOT/index.html3)重啟Tomcat服務(wù)器
[root@web1 ~]# /usr/local/tomcat/bin/shutdown.sh [root@web1 ~]# /usr/local/tomcat/bin/startup.sh #重啟后記得重新查看端口確認(rèn)是否重啟成功 [root@web1 ~]# ss -anutlp | grep java tcp LISTEN 0 1 ::ffff:127.0.0.1:8005 :::* users:(("java",pid=5404,fd=73)) tcp LISTEN 0 100 :::8009 :::* users:(("java",pid=5404,fd=51)) tcp LISTEN 0 100 :::8080 :::* users:(("java",pid=5404,fd=46))4)客戶(hù)端設(shè)置host文件,并瀏覽測(cè)試頁(yè)面進(jìn)行測(cè)試(proxy充當(dāng)客戶(hù)端角色)
注意:ssh遠(yuǎn)程連接時(shí)使用使用-X參數(shù)才可以!!!
?
- 步驟二:修改www.b.com網(wǎng)站的首頁(yè)目錄為base
1)使用docBase參數(shù)可以修改默認(rèn)網(wǎng)站首頁(yè)路徑
[root@web1 ~]# vim /usr/local/tomcat/conf/server.xml 123 <Host name="www.a.com" appBase="a" 124 unpackWARs="true" autoDeploy="true"> 125 </Host> 126 <Host name="www.b.com" appBase="b" 127 unpackWARs="true" autoDeploy="true"> 128 <Context path="" docBase="base"/>#在同一個(gè)虛擬主機(jī)里允許寫(xiě)多個(gè)<Context path>,Context path相當(dāng)于地址跳轉(zhuǎn),當(dāng)訪問(wèn)Context path下的路徑時(shí),實(shí)際訪問(wèn)到的是docBase下的路徑 129 </Host> 130 <Host name="localhost" appBase="webapps" 131 unpackWARs="true" autoDeploy="true"> [root@web1 ~]# mkdir /usr/local/tomcat/b/base [root@web1 ~]# echo "lallalal" > /usr/local/tomcat/b/base/index.html [root@web1 ~]# /usr/local/tomcat/bin/shutdown.sh [root@web1 ~]# /usr/local/tomcat/bin/startup.sh2)測(cè)試查看頁(yè)面是否正確(proxy充當(dāng)客戶(hù)端角色)
[root@proxy ~]# firefox http://www.b.com:8080/ //結(jié)果為base目錄下的頁(yè)面內(nèi)容 [root@proxy ~]# curl http://www.b.com:8080/ lallalal- 步驟三:跳轉(zhuǎn)
1)當(dāng)用戶(hù)訪問(wèn)http://www.a.com/test打開(kāi)/var/www/html目錄下的頁(yè)面
?
2)測(cè)試查看頁(yè)面是否正確(proxy充當(dāng)客戶(hù)端角色)
[root@proxy ~]# firefox http://www.a.com:8080/test //返回/var/www/html/index.html的內(nèi)容 //注意,訪問(wèn)的端口為8080- 步驟四:配置Tomcat支持SSL加密網(wǎng)站
1)創(chuàng)建加密用的私鑰和證書(shū)文件
[root@web1 ~]# keytool -genkeypair -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/keystore //提示輸入密碼為:123456 //-genkeypair 生成密鑰對(duì) //-alias tomcat 密鑰別名 //-keyalg RSA 定義密鑰算法為RSA算法 //-keystore 定義密鑰文件存儲(chǔ)在:/usr/local/tomcat/keystore2)再次修改server.xml配置文件,創(chuàng)建支持加密連接的Connector
[root@web1 ~]# vim /usr/local/tomcat/conf/server.xml … … 85 <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" keystoreFile="/usr/local/tomcat/keystore" keystorePass="123456" clientAuth="false" sslProtocol="TLS" /> //備注,默認(rèn)這段Connector被注釋掉了,刪除84行和88行注釋,添加密鑰信息即可3)重啟Tomcat服務(wù)器
[root@web1 ~]# /usr/local/tomcat/bin/shutdown.sh [root@web1 ~]# /usr/local/tomcat/bin/startup.sh [root@web1 ~]# ss -anutlp | grep java tcp LISTEN 0 1 ::ffff:127.0.0.1:8005 :::* users:(("java",pid=6115,fd=77)) tcp LISTEN 0 100 :::8009 :::* users:(("java",pid=6115,fd=52)) tcp LISTEN 0 100 :::8080 :::* users:(("java",pid=6115,fd=46)) tcp LISTEN 0 100 :::8443 :::* users:(("java",pid=6115,fd=51)) #此時(shí)端口變?yōu)樗膫€(gè)默認(rèn)端口4)客戶(hù)端設(shè)置host文件,并瀏覽測(cè)試頁(yè)面進(jìn)行測(cè)試(proxy充當(dāng)客戶(hù)端角色)
[root@proxy ~]# vim /etc/hosts … … 192.168.2.100 www.a.com www.b.com [root@proxy ~]# firefox https://www.a.com:8443/ [root@proxy ~]# firefox https://www.b.com:8443/ [root@proxy ~]# firefox https://192.168.2.100:8443/- 步驟五:配置Tomcat日志
1)為每個(gè)虛擬主機(jī)設(shè)置不同的日志文件
[root@web1 ~]# vim /usr/local/tomcat/conf/server.xml .. .. <Host name="www.a.com" appBase="a" unpackWARS="true" autoDeploy="true"> <Context path="/test" docBase="/var/www/html/" /> #從默認(rèn)localhost虛擬主機(jī)中把Valve這段復(fù)制過(guò)來(lái),適當(dāng)修改下即可 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="a_access" suffix=".txt"pattern="%h %l %u %t "%r" %s %b" /> </Host> <Host name="www.b.com" appBase="b" unpackWARS="true" autoDeploy="true"> <Context path="" docBase="base" /> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="www_a_com" suffix=".log"pattern="%h %l %u %t "%r" %s %b" /> </Host> .. ..2)重啟Tomcat服務(wù)器
[root@web1 ~]# /usr/local/tomcat/bin/shutdown.sh [root@web1 ~]# /usr/local/tomcat/bin/startup.sh3)查看服務(wù)器日志文件
[root@web1 ~]# cd /usr/local/tomcat/logs[root@web1 logs]# ls catalina.2020-01-15.log host-manager.2020-01-15.log localhost_access_log.2020-01-15.txt www_a_com.2020-01-15.log catalina.out localhost.2020-01-15.log manager.2020-01-15.log[root@web1 logs]# cat www_a_com.2020-01-15.log #第一次查看,沒(méi)有任何訪問(wèn)記錄,用客戶(hù)端訪問(wèn) [root@proxy ~]# firefox http://www.a.com:8080 #客戶(hù)端進(jìn)行訪問(wèn)[root@web1 logs]# cat www_a_com.2020-01-15.log 192.168.2.5 - - [15/Jan/2020:15:52:46 +0800] "GET / HTTP/1.1" 200 6 192.168.2.5 - - [15/Jan/2020:15:52:46 +0800] "GET /favicon.ico HTTP/1.1" 404 1016- 步驟六:擴(kuò)展實(shí)驗(yàn)(配置Tomcat集群)
1) 在192.168.4.5主機(jī)上配置Nginx調(diào)度器
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf http{upstream toms {server 192.168.2.100:8080;server 192.168.2.200:8080;}server {listen 80;server_name localhost;location / {proxy_pass http://toms;}} }2) 在192.168.2.100和192.168.2.200主機(jī)上配置Tomcat調(diào)度器
以下以Web1為例:
3 ) 為了更好的看出兩個(gè)web服務(wù)器的區(qū)別,修改首頁(yè)頁(yè)面
[root@web1 ~]# vim /usr/local/tomcat/conf/server.xml .. ..<Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"><Context path="" docBase="base"/> .. .. </Host> [root@web1 ~]# mkdir /usr/local/tomcat/webapps/base [root@web1 ~]# echo "web1AAA" > /usr/local/tomcat/webapps/base/index.html3)啟動(dòng)服務(wù)
[root@web1 ~]# /usr/local/tomcat/bin/shutdown.sh [root@web1 ~]# /usr/local/tomcat/bin/startup.sh [root@web1 ~]# ss -ntulp | grep java tcp LISTEN 0 1 ::ffff:127.0.0.1:8005 :::* users:(("java",pid=6852,fd=85)) tcp LISTEN 0 100 :::8009 :::* users:(("java",pid=6852,fd=55)) tcp LISTEN 0 100 :::8080 :::* users:(("java",pid=6852,fd=46)) tcp LISTEN 0 100 :::8443 :::* users:(("java",pid=6852,fd=51))4) 客戶(hù)端驗(yàn)證
為了防止有數(shù)據(jù)緩存,可以使用真實(shí)主機(jī)的google-chrome訪問(wèn)代理服務(wù)器,輸入Ctrl+F5刷新頁(yè)面。
?
?
Varnish代理服務(wù)器
什么是CDN
? ?cdn全稱(chēng)為內(nèi)容分發(fā)網(wǎng)絡(luò)(Content Delivery Network)。基本思想是盡可能避開(kāi)互聯(lián)網(wǎng)上有可能影響數(shù)據(jù)傳輸速度和穩(wěn)定性的瓶頸和環(huán)節(jié),使內(nèi)容傳輸?shù)馗臁⒏€(wěn)定。通過(guò)在互聯(lián)網(wǎng)各處放置節(jié)點(diǎn)服務(wù)器來(lái)構(gòu)成在現(xiàn)有的互聯(lián)網(wǎng)基礎(chǔ)上的一層只能虛擬網(wǎng)絡(luò),cdn系統(tǒng)能夠?qū)崟r(shí)地根據(jù)網(wǎng)絡(luò)流量和個(gè)節(jié)點(diǎn)的連接、負(fù)載狀況以及到用戶(hù)的距離和響應(yīng)時(shí)間等綜合信息將用戶(hù)的請(qǐng)求重新導(dǎo)向離用戶(hù)最近的服務(wù)節(jié)點(diǎn)上。目的是為了用戶(hù)就近取所需內(nèi)容,解決了網(wǎng)絡(luò)擁擠問(wèn)題,提高用戶(hù)的響應(yīng)速度。
?如果需要自己搭建CDN系統(tǒng),有3種主流方案可以選擇
squid
varnish
Nginx+memcache
用varnish實(shí)現(xiàn)cdn
? 在當(dāng)前主流的Web架構(gòu)中,Cache擔(dān)任著越來(lái)越重要的作用。常見(jiàn)的基于瀏覽器的C/S架構(gòu),Web Cache更是節(jié)約服務(wù)器資源的關(guān)鍵。而最近幾年由FreeBSD創(chuàng)始人之一Kamp開(kāi)發(fā)的varnish更是一個(gè)不可多得的Web Cache Server。嚴(yán)格意義上說(shuō),Varnish是一個(gè)高性能的反向代理軟件,只不過(guò)與其出色的緩存功能相比,企業(yè)更愿意使用其搭建緩存服務(wù)器。同時(shí),由于其工作在Web Server的前端,有一部分企業(yè)已經(jīng)在生產(chǎn)環(huán)境中使用其作為舊版本的squid的替代方案,以在相同的服務(wù)器成本下提供更好的緩存效果,Varnish更是作為CDN緩存服務(wù)器的可選服務(wù)之一。
代理服務(wù)器概述
- proxy,代理人,經(jīng)紀(jì)人,中介
- 代理用戶(hù)處理事務(wù)
能提供正常情況下不便或無(wú)法訪問(wèn)的資源
- 應(yīng)用場(chǎng)景
- 代理服務(wù)器工作機(jī)制
Varnish服務(wù)器
- Varnish是一款高性能且開(kāi)源的反向代理服務(wù)器,是一個(gè)web緩存代理器
- Varnish具有性能高,速度快,管理更方便等諸多優(yōu)點(diǎn)
配置Varnish服務(wù)器
問(wèn)題
通過(guò)配置Varnish緩存服務(wù)器,實(shí)現(xiàn)如下目標(biāo):
- 使用Varnish加速后端Web服務(wù)
- 代理服務(wù)器可以將遠(yuǎn)程的Web服務(wù)器頁(yè)面緩存在本地
- 遠(yuǎn)程Web服務(wù)器對(duì)客戶(hù)端用戶(hù)是透明的
- 利用緩存機(jī)制提高網(wǎng)站的響應(yīng)速度
- 使用varnishadm命令管理緩存頁(yè)面
- 使用varnishstat命令查看Varnish狀態(tài)
?
方案
通過(guò)源碼編譯安裝Varnish緩存服務(wù)器
編譯安裝Varnish軟件
修改配置文件,緩存代理源Web服務(wù)器,實(shí)現(xiàn)Web加速功能
使用3臺(tái)RHEL7虛擬機(jī),其中一臺(tái)作為Web服務(wù)器(192.168.2.100)、一臺(tái)作為Varnish代理服務(wù)器(192.168.4.5,192.168.2.5),另外一臺(tái)作為測(cè)試用的Linux客戶(hù)機(jī)(192.168.4.10),如圖所示。
對(duì)于Web服務(wù)器的部署,此實(shí)驗(yàn)中僅需要安裝nginx或者h(yuǎn)ttpd軟件、啟動(dòng)服務(wù),并生成測(cè)試首頁(yè)文件即可,默認(rèn)httpd網(wǎng)站根路徑為/var/www/html,首頁(yè)文檔名稱(chēng)為index.html,默認(rèn)nginx網(wǎng)站根路徑為/usr/local/nginx/html,默認(rèn)首頁(yè)為index.html。下面的實(shí)驗(yàn)我們以httpd為例作為Web服務(wù)器。
步驟
步驟一:構(gòu)建Web服務(wù)器
1)使用yum安裝web軟件包
[root@web1 ~]# yum -y install httpd2)啟用httpd服務(wù)(注意需要關(guān)閉nginx,否則端口沖突)
[root@web1 ~]# systemctl start httpdhttpd服務(wù)默認(rèn)通過(guò)TCP 80端口監(jiān)聽(tīng)客戶(hù)端請(qǐng)求:
[root@web1 ~]# netstat -anptu | grep httpd tcp 0 0 :::80 :::* LISTEN 2813/httpd3)為Web訪問(wèn)建立測(cè)試文件
在網(wǎng)站根目錄/var/www/html下創(chuàng)建一個(gè)名為index.html的首頁(yè)文件:
4)測(cè)試頁(yè)面是否正常(代理服務(wù)器測(cè)試后臺(tái)web)
[root@proxy ~]# firefox http://192.168.2.100步驟二:部署Varnish緩存服務(wù)器(192.168.4.5)
1)編譯安裝軟件
[root@proxy ~]# yum -y install gcc readline-devel //安裝軟件依賴(lài)包 [root@proxy ~]# yum -y install python-docutils //安裝軟件依賴(lài)包 #如果安裝過(guò)nginx則以下不需要安裝 [root@proxy ~]# yum -y install pcre-devel //安裝軟件依賴(lài)包 [root@proxy ~]# yum -y install python-docutils //安裝軟件依賴(lài)包[root@proxy ~]# cd lnmp_soft/ #練習(xí)環(huán)境下源碼包都在這里 [root@proxy lnmp_soft]# ls apache-tomcat-8.0.30.tar.gz nginx-1.15.8.tar.gz redis-3.0.6.tar.gz apache-tomcat-9.0.6.tar.gz nginx.conf.bak tomcat_session buffer.sh nginx.spec varnish-5.2.1.tar.gz [root@proxy ~]# useradd -s /sbin/nologin varnish //創(chuàng)建賬戶(hù) [root@proxy ~]# tar -xf varnish-5.2.1.tar.gz [root@proxy ~]# cd varnish-5.2.1 [root@proxy varnish-5.2.1]# ./configure [root@proxy varnish-5.2.1]# make && make install2)復(fù)制配置文件(注意相對(duì)路徑與絕對(duì)路徑)
[root@proxy varnish-5.2.1]# cp etc/example.vcl /usr/local/etc/default.vcl#拷貝后的名字隨意起3)修改代理配置文件
[root@proxy varnish-5.2.1]# vim ?/usr/local/etc/default.vcl16 backend default { #修改后臺(tái)原始站點(diǎn)17 .host = "192.168.2.100";18 .port = "80";19 }.. ..4)啟動(dòng)服務(wù)
[root@proxy varnish-5.2.1]# varnishd ?-f ?/usr/local/etc/default.vcl? Debug: Platform: Linux,3.10.0-862.el7.x86_64,x86_64,-junix,-smalloc,-smalloc,-hcritbit Debug: Child (14530) Started#注意看端口是否被占用!!!!!!!!!!!//varnishd命令的其他選項(xiàng)說(shuō)明如下: //varnishd -s malloc,128M 定義varnish使用內(nèi)存作為緩存,空間為128M //varnishd -s file,/var/lib/varnish_storage.bin,1G 定義varnish使用文件作為緩存步驟三:客戶(hù)端測(cè)試
1)客戶(hù)端開(kāi)啟瀏覽器訪問(wèn)
[root@client ~]# curl http://192.168.4.5 123456步驟四:其他操作
1)查看varnish日志
[root@proxy ~]# varnishlog //varnish日志 [root@proxy ~]# varnishncsa //訪問(wèn)日志2)更新緩存數(shù)據(jù),在后臺(tái)web服務(wù)器更新頁(yè)面內(nèi)容后,用戶(hù)訪問(wèn)代理服務(wù)器看到的還是之前的數(shù)據(jù),說(shuō)明緩存中的數(shù)據(jù)過(guò)期了需要更新(默認(rèn)也會(huì)自動(dòng)更新,但非實(shí)時(shí)更新)。
[root@proxy ~]# varnishadm varnish> ban req.url ~ .* //清空緩存數(shù)據(jù),支持正則表達(dá)式例: [root@web1 logs]# cd /var/www/html #在web1服務(wù)器上切換到網(wǎng)頁(yè)目錄根路徑 [root@web1 html]# echo cc > c.html #書(shū)寫(xiě)網(wǎng)頁(yè)文件做測(cè)試 [root@client ~]# curl http://192.168.4.5/c.html cc #客戶(hù)端訪問(wèn),此時(shí)是cc [root@web1 html]# echo 11 > c.html #此時(shí)后臺(tái)做一下更改 [root@client ~]# curl http://192.168.4.5/c.html cc #客戶(hù)端仍然是cc,說(shuō)明此時(shí)客戶(hù)端看到的是緩存的數(shù)據(jù),大約一到兩分鐘左右會(huì)自動(dòng)更新數(shù)據(jù)手動(dòng)清除緩存: [root@web1 html]# echo dd > d.html #書(shū)寫(xiě)網(wǎng)頁(yè)文件做測(cè)試 [root@client ~]# curl http://192.168.4.5/d.html dd #訪問(wèn)頁(yè)面 [root@web1 html]# echo 44 > d.html #后臺(tái)做一下修改 [root@client ~]# curl http://192.168.4.5/d.html dd #此時(shí)仍然是dd [root@proxy varnish-5.2.1]# varnishadm #手動(dòng)修改清除d.html緩存 varnish> ban req.url ~ d.html 200 [root@client ~]# curl http://192.168.4.5/d.html 44 #此時(shí)客戶(hù)端訪問(wèn)直接變?yōu)榱诵碌臄?shù)據(jù)?
總結(jié)
以上是生活随笔為你收集整理的Tomcat服务器 Varnish代理服务器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Session与Cookie
- 下一篇: 版本控制 Git RPM打包