文章目錄
一、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,在編寫的那臺服務器關閉後,轉換到另一臺服務器且信息都在