lnmp服務的主要功能實現(memcache緩存、session共享和會話保持)

一、memcache的使用

1.memcache的簡介

Memcache是一個高性能的分佈式的內存對象緩存系統,通過在內存裏維護一個統一的巨大的hash表,它能夠用來存儲各種格式的數據,包括圖像、視頻、文件以及數據庫檢索的結果等。簡單的說就是將數據調用到內存中,然後從內存中讀取,從而大大提高讀取速度。

2.軟件的安裝

首先可以在官網memcached.org獲取安裝包,本機使用的版本是memcache-2.2.5.gz

因爲接下來要用到php命令,所以我們將命令加入到環境變量中
vim ~/.bash_profile				##修改環境變量文件
source ~/.bash_profile			##使修改生效

在這裏插入圖片描述

獲取安裝包後先解壓
tar zxf memcache-2.2.5.gz			##解壓安裝包
cd memcache-2.2.5					##進入安裝目錄發現沒有configure等編譯執行文件
phpize								##執行這個php命令後會生成configure執行腳本命令
./configure							##檢測系統環境和生成makefile文件
make && make install				##編譯和安裝

3.軟件的配置:

vim /usr/local/lnmp/php/etc/php.ini				##修改php的配置文件添加memcache拓展功能
/etc/init.d/php-fpm reload						##重新加載配置

在這裏插入圖片描述

yum install -y memcached						##安裝服務支持
rpm -ql memcached								##查看安裝後生成的文件及路徑
/etc/init.d/memcached start						##有時候這樣啓動不會報錯,我們可以查看端口再次確認
netstat -tnlp | grep memcache					##查看memcache所用端口

Telnet協議是TCP/IP協議族中的一員,是Internet遠程登錄服務的標準協議和主要方式。它爲用戶提供了在本地計算機上完成遠程主機工作的能力。在終端使用者的電腦上使用telnet程序,用它連接到服務器。終端使用者可以在telnet程序中輸入命令,這些命令會在服務器上運行,就像直接在服務器的控制檯上輸入一樣。可以在本地就能控制服務器。要開始一個telnet會話,必須輸入用戶名和密碼來登錄服務器。Telnet是常用的遠程控制Web服務器的方法。

yum install telnet -y							##安裝telnet來測試服務
telnet localhost 11211							##輸入主機名和端口來開啓一個telnet會話
stats											##可以查看服務的信息和狀態
set name 0 0 6									##查看是否可以存儲信息

在這裏插入圖片描述
在這裏插入圖片描述

4.圖表方式查看緩存的配置

cd memcache-2.2.5			##進入軟件的解壓目錄
cp memcache.php /usr/local/lnmp/nginx/html/			##將圖形模板發送到nginx的默認發佈目錄下
vim /usr/local/lnmp/nginx/html/memcache.php			##修改默認發佈文件,且修改這種文件不需要重啓服務

在這裏插入圖片描述

在網站上輸入http://172.25.21.1/memcache.php進行登陸訪問,需要填寫剛纔文件中設置的用戶名和密碼
登陸成功後界面如下圖所示:

在這裏插入圖片描述

5.通過訪問默認發佈文件來測試緩存是否提升了訪問速度

cd memcache-2.2.5			##進入解壓後的目錄
cp example.php /usr/local/lnmp/nginx/html/		##把測試模板放到nginx的默認發佈目錄下,訪問這個文件可以在圖形上顯示
在真機上使用apache工具ab進行訪問測試:
ab -c 10 -n 5000 http://172.25.21.1/index.php		##表示10個併發同時訪問,訪問總次數爲5000

在這裏插入圖片描述

ab -c 10 -n 5000 http://172.25.21.1/example.php

在這裏插入圖片描述
在這裏插入圖片描述

二、openrestry的使用

1.軟件的簡介和安裝

OpenResty® 是一個基於 Nginx 與 Lua 的高性能 Web 平臺,其內部集成了大量精良的 Lua 庫、第三方模塊以及大多數的依賴項。用於方便地搭建能夠處理超高併發、擴展性極高的動態 Web 應用、Web 服務和動態網關。

OpenResty® 通過匯聚各種設計精良的 Nginx 模塊(主要由 OpenResty 團隊自主開發),從而將 Nginx 有效地變成一個強大的通用 Web 應用平臺。這樣,Web 開發人員和系統工程師可以使用 Lua 腳本語言調動 Nginx 支持的各種 C 以及 Lua 模塊,快速構造出足以勝任 10K 乃至 1000K 以上單機併發連接的高性能 Web 應用系統。

安裝包可以在官方中文網站http://openresty.org/cn/上下載,本機使用的版本是openresty-1.13.6.1.tar.gz
tar zxf openresty-1.13.6.1.tar.gz		##解壓安裝包
nginx -s stop							##爲了避免衝突我們把原來的nginx停止掉

cd
./configure --prefix=/usr/local/lnmp/openresty			##檢測系統環境和生成makefile文件
gmaek && gmake install					##根據提示編譯安裝
cd memcache-2.2.5						##進入memcache的解壓目錄
cp memcache.php example.php /usr/local/lnmp/openresty/nginx/html/		##把模板文件複製到openresty的發佈目錄下

2.配置文件的修改

cd /usr/local/lnmp/openresty/nginx/html		##進入openresty的默認發佈目錄
cp /usr/local/lnmp/nginx/html/memcache.php .	##將修改過的memcache.php複製過來
vim /uur/local/lnmp/openresty/nginx/cong/nginx.conf		##修改配置文件,可以在官網上找到代碼塊
/usr/local/lnmp/openresty/nginx/sbin/nginx				##啓動服務

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

三、tomcat的安裝和使用

1.tomcat的簡介和安裝

Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器,在中小型系統和併發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。對於一個初學者來說,可以這樣認爲,當在一臺機器上配置好Apache 服務器,可利用它響應HTML(標準通用標記語言下的一個應用)頁面的訪問請求。實際上Tomcat是Apache 服務器的擴展,但運行時它是獨立運行的,所以當你運行tomcat 時,它實際上作爲一個與Apache 獨立的進程單獨運行的。

軟件包的獲取可以在官網tomcat.apache.org上下載,需要注意的是他的運行需要安裝jdk,java的編譯環境,可以在rpms等官網上
下載,需要注意的是版本的對應,本機使用的版本爲jdk-7u79-linux-x64.tar.gz和apache-tomcat-7.0.37.tar.gz
tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/		##-C解壓到指定目錄
tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/		
cd /usr/local/							
ln -s apache-tomcat-7.0.37 tomcat						##爲了方便我們的操作我們給tomcat的解壓目錄建立一個軟鏈接
vim /etc/profile			##把java的命令加入全局變量中
source /etc/profile			##使修改生效
java -version				##查看jdk的版本信息

在這裏插入圖片描述

2.配置文件的修改

cd /usr/local/tomcat/webapps/ROOT			##webapps是默認發佈目錄,ROOT是本機的默認發佈目錄

vim /usr/local/lnmp/openresty/nginx/conf/nginx.conf			##修改openresty配置文件
/usr/local/lnmp/openresty/nginx/sbin/nginx -s reload		##重新加載服務

在這裏插入圖片描述

vim /usr/local/tomcat/webapps/ROOT/test.jsp			##編寫一個jsp動態測試頁面
the time is: <%=new java.util.Date() %>
/usr/local/tomcat/bin/startup.sh					##啓動tomcat服務

在瀏覽器輸入172.25.21.1/test.jsp訪問測試頁面

在這裏插入圖片描述
在這裏插入圖片描述

三、session共享和會話保持

1.再配置一臺虛擬機來交叉存儲,啓用server2

[root@server1 local]# scp -r ./apache-tomcat-7.0.37/ root@172.25.21.2:/usr/local/ ##把配置好的tomcat發給server2
[root@server1 local]# scp  -r jdk1.7.0_79/ root@172.25.21.2:/usr/local/		##把配置好的jdk環境發給server2

server2的配置:
vim /etc/profile			##跟server1一樣配置環境變量
export JAVA_HOME=/usr/local/jdk1.7.0_79
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile			##使配置生效
java -version				##查看java版本
ln -s /usr/local/apache-tomcat-7.0.37 /usr/local/tomcat			##給tomcat目錄創建一個軟鏈接
/usr/local/tomcat/bin/startup.sh			##啓動服務,但是一般不會報錯
netstat -tnlp | grep java					##先查看端口是否被服務啓用
vim /usr/local/tomcat/logs/catalina.out		##服務還有問題就查看這個日誌,裏面有詳細的服務運行信息,所以一般要限制這個
										##日誌的大小,不然它會一隻佔用越來越大的空間,此處我們沒有那麼多操作所以不限制

2.配置一個反向代理

獲取一個java寫的動態會話窗口test.jsp,
scp /usr/local/tomcat/webapps/ROOT/test.jsp root@172.25.21.2:/usr/local/tomcat/webapps/ROOT/	##發給server2
/usr/local/tomcat/bin/shutdown.sh		##沒有重啓命令,只能先關閉再打開服務,兩邊都重啓
/usr/local/tomcat/bin/startup.sh

server1:  vim /usr/local/lnmp/openresty/nginx/conf/nginx.conf  	##做一個反向代理來切換會話窗口
/usr/local/lnmp/openresty/nginx/sbin/nginx -s reload			##重啓服務

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

3.訪問測試

在網址輸入172.25.21.1:8080可以直接看到tomcat的動態頁面,因爲這樣沒經過nginx處理
輸入172.25.21.1只能看到靜態界面

在這裏插入圖片描述
在這裏插入圖片描述

訪問我們java編寫的動態窗口會話頁面
可以保存信息,但是再次填寫後ip輪詢,原來的信息消失

在這裏插入圖片描述
在這裏插入圖片描述

四、會話保持的實現(sticky)

1.軟件的選取和安裝

因爲現在最新版只有付費的nginxplus裏面纔有這個組件,所以我們選取老版本的nginx來實現

Sticky是nginx的一個模塊,它是基於cookie的一種nginx的負載均衡解決方案,通過分發和識別cookie,來使同一個客戶端的請求落在同一臺服務器上,默認標識名爲route
1.客戶端首次發起訪問請求,nginx接收後,發現請求頭沒有cookie,則以輪詢方式將請求分發給後端服務器。
2.後端服務器處理完請求,將響應數據返回給nginx。
3.此時nginx生成帶route的cookie,返回給客戶端。route的值與後端服務器對應,可能是明文,也可能是md5、sha1等Hash值
4.客戶端接收請求,並保存帶route的cookie。
5.當客戶端下一次發送請求時,會帶上route,nginx根據接收到的cookie中的route值,轉發給對應的後端服務器。

本機使用的是nginx-sticky-module-ng.tar.gz和nginx-1.10.1.tar.gz
tar zxf nginx-1.10.1.tar.gz				##解壓安裝包
tar zxf nginx-sticky-module-ng.tar.gz
/usr/local/lnmp/nginx/sbin/nginx -V		##查看原來安裝的nginx的安裝信息
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module /
--with-threads --with-file-aio --user=nginx --group=nginx --add-module=/root/nginx-sticky-module-ng
##添加上sticky模塊,生成makefile
make && make install					##編譯和安裝

cd /usr/local/lnmp/nginx/				##進入安裝後的目錄
./sbin/nginx -V							##確認版本信息和添加模塊
cp /usr/local/lnmp/openresty/nginx/conf/nginx.conf ./conf/nginx.conf		##把寫好的配置文件複製過來
/usr/local/lnmp/openresty/nginx/sbin/nginx -s stop							##停止openresty

vim /usr/local/lnmp/nginx/conf/nginx.conf		##修改配置文件
/usr/local/lnmp/nginx/sbin/nginx				##啓動服務

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

2.訪問測試

在瀏覽器輸入http://172.25.21.1/test.jsp訪問

在這裏插入圖片描述

若server1的tomcat出現問題,server2還是不能保存信息

在這裏插入圖片描述

3.實現session共享存儲,讓server1出問題時,server2仍可以訪問到信息

在server2上安裝memcache
yum install memcached -y				##安裝軟件愛你

在server1和server2上的操作
獲取一個函數庫,其中的jar文件全部拷貝到/usr/local/tomcat/lib下,
rm -fr memcached-session-manager-tc6-1.6.3.jar			##刪除這個jar
##可以在網上找到

在這裏插入圖片描述

vim /usr/local/tomcat/conf/context.conf		##添加策略(server1和server都要添加)
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:172.25.21.1:11211,n2:172.25.21.2:11211"
failoverNodes="n1" 
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>

/etc/init.d/memcached start					##都啓動memcache緩存服務
/usr/local/tomcat/bin/shutdown.sh			##重啓tomcat
/usr/local/tomcat/bin/startup.sh

在這裏插入圖片描述

4.測試訪問

在瀏覽器訪問http://172.25.21.1/test.jsp,在編寫的那臺服務器關閉後,轉換到另一臺服務器且信息都在

在這裏插入圖片描述
在這裏插入圖片描述

發佈了74 篇原創文章 · 獲贊 6 · 訪問量 5622
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章