構建memcached服務&使用Tomcat設置Session

案例1:構建memcached服務
本案例要求先快速搭建好一臺memcached服務器,並對memcached進行簡單的添、刪、改、查操作:
安裝memcached軟件,並啓動服務
使用telnet測試memcached服務
對memcached進行增、刪、改、查等操作
步驟一:構建memcached服務
1)使用yum安裝軟件包memcached
[root@svr5 ~]# yum -y install memcached
[root@svr5 ~]# rpm -qa memcached
memcached-1.4.15-9.el7.x86_64
2)啓動服務並查看網絡連接狀態驗證是否開啓成功:
[root@svr5 ~]# systemctl start memcached
[root@svr5 ~]# systemctl status memcached
[root@svr5 ~]# netstat -anptu | grep memcached
步驟二:使用telnet訪問memcached服務器
1)使用yum安裝telnet
[root@svr5 ~]# yum –y install telnet
2)使用telnet連接服務器測試memcached服務器功能,包括增、刪、改、查等操作。
[root@svr5 ~]# telnet 127.0.0.1 11211
set name 0 180 3 //定義變量,變量名稱爲name,0表示不壓縮,180表示緩存時間,3表示佔用3字節空間
plj //輸入變量的值,值爲plj
STORED
get name //獲取變量的值
VALUE name 0 3 //輸出結果
plj
END
add myname 0 180 10 //新建,myname不存在則添加,存在則報錯
set myname 0 180 10 //添加或替換變量
replace myname 0 180 2 //替換,如果myname不存在則報錯(可改後面參數)
get myname //讀取變量
append myname 0 180 10 //向變量中追加數據
delete myname //刪除變量
stats //查看狀態
flush_all //清空所有
quit //退出登錄
######################################################
date -d '@1513046563' 時間戳

案例2:LNMP+memcached
沿用練習一,部署LNMP+memcached網站平臺,通過PHP頁面實現對memcached服務器的數據操作,實現以下目標:
部署LNMP實現PHP動態網站架構
爲PHP安裝memcache擴展
創建PHP頁面,並編寫PHP代碼,實現對memcached的數據操作
步驟一:部署LNMP環境

1)使用yum安裝基礎依賴包
[root@svr5 ~]# yum -y install gcc openssl-devel pcre-devel zlib-devel
2)源碼安裝Nginx
從真機#scp nginx-1.8.0.tar.gz memcached服務器IP:/root
[root@svr5 ~]# useradd -s /sbin/nologin www
[root@svr5 ~]# tar -zxvf nginx-1.8.0.tar.gz
[root@svr5 ~]# cd nginx-1.8.0
[root@svr5 nginx-1.8.0]# ./configure \

--user=www --group=www \
--with-http_ssl_module
[root@svr5 ~]# make && make install
3)安裝MariaDB數據庫
[root@svr5 ~]# yum –y install mariadb mariadb-server mariadb-devel
4)安裝PHP
[root@svr5 ~]# yum –y install php php-mysql
[root@svr5 ~]# yum –y localinstall php-fpm-5.4.16-36.el7_1.x86_64.rpm
5)爲PHP添加memcache擴展
[root@svr5 ~]# yum –y install php-pecl-memcache
6)修改Nginx配置文件
[root@svr5 ~]# vim /usr/local/nginx/conf/nginx.conf
location / {
root html;
index index.php index.html index.htm;
}
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi.conf;
}
取消註釋符號,修改最後一行即可。

步驟二:啓動服務

1)啓動Nginx服務
這裏需要注意的是,如果服務器上已經啓動了其他監聽80端口的服務軟件(如httpd),則需要先關閉該服務,否則會出現衝突。
[root@svr5 ~]# systemctl stop httpd //如果該服務存在,則關閉該服務
[root@svr5 ~]# /usr/local/nginx/sbin/nginx

2)啓動MySQL服務
[root@svr5 ~]# systemctl start mariadb
[root@svr5 ~]# systemctl status mariadb
3)啓動PHP-FPM服務
[root@svr5 ~]# systemctl start php-fpm
[root@svr5 ~]# systemctl status php-fpm

步驟三:創建PHP頁面,使用PHP語言測試memcached服務

創建PHP首頁文檔/usr/local/nginx/html/index.php:
[root@svr5 ~]# vim /usr/local/nginx/html/test.php
<?php
$memcache=new Memcache; //創建memcache對象
$memcache->connect(‘localhost’,11211) or die (‘could not connect!!’);
$memcache->set(‘key’,‘test’); //定義變量
$get_values=$memcache->get(‘key’); //獲取變量值
echo $get_values;
?>
步驟四:客戶端測試

客戶端使用瀏覽器訪問服務器PHP首頁文檔,檢驗對memcached的操作是否成功:
[root@client ~]# firefox http://192.168.4.5/test.php

#可能錯誤。主機名錯誤,端口錯誤,防火牆,selinux阻止

#############################################################

3 案例3:使用Tomcat設置Session
使用4臺RHEL7虛擬機,其中一臺作爲Nginx前端調度器服務器(eth0:192.168.4.5,eth1:172.16.2.5)、兩臺虛擬機部署爲Tomcat服務器,分別爲Web1服務器(192.168.2.100)和Web2服務器(192.168.2.200),另外一臺作爲測試用的Linux客戶機(172.16.4.100)
步驟一:部署前端Nginx調度服務器

1)使用源碼安裝nginx軟件
[root@svr5 ~]# yum -y install pcre-devel openssl-devel
[root@svr5 ~]# tar -zxvf nginx-1.8.0.tar.gz
[root@svr5 ~]# cd nginx-1.8.0
[root@svr5 nginx-1.8.0]# ./configure
[root@svr5 nginx-1.8.0]# make && make install
2)修改Nginx配置文件
Nginx配置文件中,通過upstream定義後端服務器地址池,默認調度策略爲輪詢,使用proxy_pass調用upstream定義的服務器地址池:
[root@svr5 ~]# vim /usr/local/nginx/conf/nginx.conf
.. ..
upstream tomcatgrp {
server 192.168.2.100:8080;
server 192.168.2.200:8080;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://tomcatgrp;
root html;
index index.html index.htm;
}
}
3)啓動Nginx服務

[root@svr5 ~]# /usr/local/nginx/sbin/nginx
步驟二:部署Tomcat

注意:以下部署Tomcat的操作,需要在兩臺後端服務器做相同的操作,下面我們以一臺Web1服務器(192.168.2.100)爲例,對Web2服務器執行相同操作即可。
1)安裝jdk環境
[root@svr100 ~]# yum –y install java-1.8.0-openjdk
2)安裝tomcat軟件
[root@svr100 ~]# tar -zxvf apache-tomcat-8.0.30.tar.gz
[root@svr100 ~]# mv apache-tomcat-8.0.30 /usr/local/tomcat
3)啓動tomcat服務,並查看端口信息
[root@svr100 ~]# /usr/local/tomcat/bin/startup.sh //啓動tomcat
[root@svr100 ~]# netstat -utnalp | grep :8080
tcp 0 0 :::8080 :::* LISTEN 3181/java
4)創建JSP測試頁面,要求頁面可以顯示Session ID信息
通過在頁面代碼中添加JSP語句<%String s = session.getId();%>即可:
[root@svr100 ~]# ~]# vim /usr/local/tomcat/webapps/ROOT/test.jsp
<html>
<body bgcolor="red"> //指定網頁背景顏色
<center>
<%String s = session.getId();%> //獲取SessionID
<%=s%>
<h1>tomcatA</h1> //固定字串信息,Web2的信息應該爲tomcatB
</center>
</body>
</html>
步驟三:客戶端訪問測試效果

1)客戶端使用瀏覽器訪問測試頁面
[root@pc01 ~]# firefox http://192.168.4.5/test.jsp
客戶端兩次訪問的頁面,應該對應的是Web1和Web2服務器返回的不同頁面,並且會分別顯示不同的Session ID信息
#########################################################
案例4:Tomcat實現session共享
步驟一:構建memcached服務

1)安裝Memcached服務
[root@svr5 ~]# yum –y install memcached
2)啓動服務並查看網絡連接狀態驗證是否開啓成功:
[root@svr5 ~]# systemctl start memcached
[root@svr5 ~]# netstat -anptu | grep memcached
步驟二:在Tomcat服務器上部署msm

注意:這些操作在兩臺後端Web服務器上均需要執行,以下操作以Web1(192.168.2.100)服務器爲例。
1)安裝msm
[root@svr100 ~]# cd lnmp-soft/session //從真機中scp lnmp-solf包
[root@svr100 session]# ls .jar
asm-5.1.jar minlog-1.3.0.jar
kryo-3.0.3.jar msm-kryo-serializer-1.9.2.jar
kryo-serializers-0.34.jar reflectasm-1.11.1.jar
memcached-session-manager-1.9.2.jar spymemcached-2.11.1.jar
memcached-session-manager-tc8-1.9.2.jar
[root@svr100 session]# cp
.jar /usr/local/tomcat/lib/
2)修改Tomcat配置文件,連接memcached服務器
[root@svr100 ~]# ~]# vim /usr/local/tomcat/conf/context.xml
<Context>
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="mem1:192.168.2.5:11211"
requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"/>
</Context>
[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh

以上步驟在web2上類似實施

步驟三:客戶端測試
[root@pc01 ~]# firefox http://192.168.4.5/test.jsp
客戶端兩次訪問的頁面,應該對應的是Web1和Web2服務器返回的不同頁面,但是Session ID信息不會變化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章