日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

centos下搭建nginx+tomcat实现集群负载与session复制

發布時間:2025/5/22 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 centos下搭建nginx+tomcat实现集群负载与session复制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


第一章 測試環境說明
1.1 系統說明
系統均選用最小化安裝的centos 5.7
1.2 軟件說明
nginx-0.8.55
pcre-8.13
apache-tomcat-6.0.35?
jdk-6u31-linux-x64
nginx-upstream-jvm-route-0.1
1.3 規劃說明
客戶端通過訪問nginx做的負載均衡層去訪問后端的web運行層(tomcat),如下圖:
?
另外,關于session復制原理,簡單來說如下圖:
?
負載層:192.168.254.200
安裝:pcre、nginx、nginx-upstream-jvm-route-0.1
后端tomcat運行層:192.168.254.221、192.168.254.222
安裝:tomcat、jdk


第2章 ?安裝部署說明
2.1 負載均衡層安裝部署說明
2.1.1 依賴包安裝
yum install wget make gcc gcc-c++ ?-y
yum install pcre-devel openssl-devel patch -y
2.1.2 創建nginx運行帳號
useradd www -s /sbin/nologin -M
2.1.3 Pcre安裝
解壓pcre安裝包:tar xvf pcre-8.13.tar.gz?
cd pcre-8.13
編譯pcre:./configure --prefix=/usr/local/pcre
安裝:make && make install
2.1.4 Nginx安裝
解壓nginx和nginx-upstream
tar xvf nginx-upstream-jvm-route-0.1.tar.gz?
tar xvf nginx-0.8.55.tar.gz?
cd nginx-0.8.55
配置jvmroute路徑:
patch ?-p0 < ../nginx_upstream_jvm_route/jvm_route.patch?


編譯nginx:
./configure \
--user=www \
--group=www \
--prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_gzip_static_module \
--pid-path=/var/run/nginx.pid \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/tmp/nginx/client_body_temp \
--http-proxy-temp-path=/var/tmp/nginx/proxy_temp ?\
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/tmp/nginx/scgi_temp \
--add-module=/root/scripts/src/nginx_upstream_jvm_route/
安裝:
make && make install
2.1.5 Nginx配置文件修改
Nginx作為負載的配置文件修改很簡單,只需添加后端web服務器的ip及端口即可,修改運行帳號,下面配置文件中的紅色字體為本次測試環境的修改值;
user ?www www;
worker_processes 8;
#error_log ?logs/nginx_error.log ?crit;
#pid ? ? ? ?/usr/local/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
events
{
?use epoll;
?worker_connections 2048;
}


http
{
? upstream backend {
? ? server 192.168.254.221:80 srun_id=real1; ?
? ? server 192.168.254.222:80 srun_id=real2; ?
? ? jvm_route $cookie_JSESSIONID|sessionid reverse;
? }
?
?include ? ? ? mime.types;
?default_type ?application/octet-stream;
?#charset ?gb2312;
?charset UTF-8;
?server_names_hash_bucket_size 128;
?client_header_buffer_size 32k;
?large_client_header_buffers 4 32k;
?client_max_body_size 20m;
?limit_rate ?1024k;
?sendfile on;
?tcp_nopush ? ? on;
?keepalive_timeout 60;
?tcp_nodelay on;
?fastcgi_connect_timeout 300;
?fastcgi_send_timeout 300;
?fastcgi_read_timeout 300;
?fastcgi_buffer_size 64k;
?fastcgi_buffers 4 64k;
?fastcgi_busy_buffers_size 128k;
?fastcgi_temp_file_write_size 128k;
?gzip on;
#gzip_min_length ?1k;
?gzip_buffers ? ? 4 16k;
?gzip_http_version 1.0;
?gzip_comp_level 2;
?gzip_types ? ? ? text/plain application/x-javascript text/css application/xml;
?gzip_vary on;
?#limit_zone ?crawler ?$binary_remote_addr ?10m;
server
?{
? ?listen ? ? ? 80;
? ?server_name ?192.168.254.250;
? ?index index.jsp index.htm index.html;
? ?root ?/data/www/;
?
? ?location / ?{
? ? ?proxy_pass ?http://backend;
? ? ?proxy_redirect ? ?off;
? ? ?proxy_set_header ?X-Forwarded-For ?$proxy_add_x_forwarded_for;
? ? ?proxy_set_header ?X-Real-IP ?$remote_addr;
? ? ?proxy_set_header ?Host $http_host;
? ?}
? ?location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
? ?{
? ? ?expires ? ? ?30d;
? ?}
? ?location ~ .*\.(js|css)?$
? ?{
? ? ?expires ? ? ?1h;
? ?}
? ?location /Nginxstatus {
? ? ?stub_status on;
? ? ?access_log ? off;
? ?}
? log_format ?access ?'$remote_addr - $remote_user [$time_local] "$request" '
? ? ? ? ? ? ?'$status $body_bytes_sent "$http_referer" '
? ? ? ? ? ? ?'"$http_user_agent" $http_x_forwarded_for';
# ?access_log ?off;
? }
?
}
2.2 后端tomcat運行層部署說明
2.2.1 安裝jdk
創建jdk安裝目錄:
mkdir /opt/java
賦予執行權限:
chmod 755 jdk-6u31-linux-x64.bin?
cd /opt/java
./jdk-6u31-linux-x64.bin?
修改環境變量:
cat >> /etc/profile.d/java.sh << "EOF"


export JAVA_HOME=/opt/java/jdk1.6.0_31
export CLASSPATH=$CLASSPATH:./:$JAVA_HOME/lib
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin

EOF
配置環境變量生效:
source /etc/profile
2.2.2 安裝tomcat
解壓安裝包,并將tomcat復制到/usr/local目錄下,命名為tomcat;
tar xvf apache-tomcat-6.0.35.tar.gz?
cp -r apache-tomcat-6.0.35 /usr/local/tomcat
2.2.3 修改配置文件 (其他配置請參考集群配置)
2.2.3.1 修改server.xml文件
修改server.xml文件只需要修改下面兩點即可,因為是兩臺機器,故兩臺機器配置相同即可;
1、修改jvmRoute="real1"(自定義)
<Engine name="Catalina" defaultHost="localhost" jvmRoute="real1">
2、下面的代碼是從官方網站上找到的默認的,具體運用中需要將auto的配置改成本機ip:
?<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
? ? ? ? ? ? ? ? ?channelSendOptions="8">


? ? ? ? ? <Manager className="org.apache.catalina.ha.session.DeltaManager"
? ? ? ? ? ? ? ? ? ?expireSessionsOnShutdown="false"
? ? ? ? ? ? ? ? ? ?notifyListenersOnReplication="true"/>


? ? ? ? ? <Channel className="org.apache.catalina.tribes.group.GroupChannel">
? ? ? ? ? ? <Membership className="org.apache.catalina.tribes.membership.McastService"
? ? ? ? ? ? ? ? ? ? ? ? address="228.0.0.4"
? ? ? ? ? ? ? ? ? ? ? ? port="45564"
? ? ? ? ? ? ? ? ? ? ? ? frequency="500"
? ? ? ? ? ? ? ? ? ? ? ? dropTime="3000"/>
? ? ? ? ? ? <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
? ? ? ? ? ? ? ? ? ? ? address="auto"
? ? ? ? ? ? ? ? ? ? ? port="4000"
? ? ? ? ? ? ? ? ? ? ? autoBind="100"
? ? ? ? ? ? ? ? ? ? ? selectorTimeout="5000"
? ? ? ? ? ? ? ? ? ? ? maxThreads="6"/>


? ? ? ? ? ? <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
? ? ? ? ? ? ? <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
? ? ? ? ? ? </Sender>
? ? ? ? ? ? <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
? ? ? ? ? ? <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
? ? ? ? ? </Channel>


? ? ? ? ? <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
? ? ? ? ? ? ? ? ?filter=""/>
? ? ? ? ? <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>


? ? ? ? ? <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
? ? ? ? ? ? ? ? ? ? tempDir="/tmp/war-temp/"
? ? ? ? ? ? ? ? ? ? deployDir="/tmp/war-deploy/"
? ? ? ? ? ? ? ? ? ? watchDir="/tmp/war-listen/"
? ? ? ? ? ? ? ? ? ? watchEnabled="false"/>


? ? ? ? ? <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
? ? ? ? ? <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
? ? ? ? </Cluster> ? ?
2.2.3.2 修改web.xml文件
配置web.xml文件只需要在末端web-app前面添加<distributable/>即可;
<welcome-file-list>
? ? ? ? <welcome-file>index.html</welcome-file>
? ? ? ? <welcome-file>index.htm</welcome-file>
? ? ? ? <welcome-file>index.jsp</welcome-file>
? ? </welcome-file-list>
<distributable/>
</web-app>
2.3 測試session復制
2.3.1 創建測試文件
分別在tomcat項目部署目錄下創建test文件夾,并創建index.jsp文件,文件內容如下:
<%@page language="java"%>
<html>
<body>
? ? ? ? <h1><font color="red">Session serviced by tomcat</font></h1>
? ? ? ? <table aligh="center" border="1">
? ? ? ? ? ? ? ? <tr>
? ? ? ? ? ? ? ? ? ? ? ? <td>Session ID</td>
? ? ? ? ? ? ? ? ? ? ? ? <td><%=session.getId() %></td>
? ? ? ? ? ? ? ? ? ? ? ? <% session.setAttribute("abc","abc");%>
? ? ? ? ? ? ? ? </tr>
? ? ? ? ? ? ? ? <tr>
? ? ? ? ? ? ? ? ? ? ? ? <td>Created on</td>
? ? ? ? ? ? ? ? ? ? ? ? <td><%= session.getCreationTime() %></td>
? ? ? ? ? ? ? ? </tr>
? ? ? ? </table>
</body>
<html>
2.3.2 Web測試session復制
瀏覽器中輸入:http://192.168.254.200/test/
即可查看當前負載tomcat測試頁面輸出:
?
關閉221的tomcat,并刷新頁面
?
如此則是測試完成。

?

總結

以上是生活随笔為你收集整理的centos下搭建nginx+tomcat实现集群负载与session复制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人高潮片免费视频 | 少妇欧美激情一区二区三区 | 九月丁香婷婷 | 亚洲一区二区播放 | 一区二区免费av | 亚洲第一激情 | 婷婷九月 | 国产热99| 亚洲色图婷婷 | 色秀视频在线观看 | 草啪啪| 久久伊人精品 | chinese hd av | 欧美日韩一区二区在线播放 | 国产乱人伦app精品久久 | 亚洲一区电影网 | 国产人妖在线 | 精品国产午夜福利在线观看 | 国产精品午夜久久 | 反差在线观看免费版全集完整版 | 欧美天堂视频 | 亚洲69视频 | a级一级片 | 日韩乱码一区二区三区 | 亚洲精品乱码久久久久久写真 | 琪琪射 | 亚洲综合色在线观看 | 激情吧| 天天撸天天操 | 欧美激情自拍 | 日韩午夜在线播放 | 少妇高潮久久久 | 伊人五月婷婷 | 99精品区| 国产亚洲视频在线观看 | 人妻无码久久一区二区三区免费 | ass日本粉嫩pics珍品 | 日本免费中文字幕 | 亚洲永久免费精品 | 欧美精品一二三四区 | 国产成人三级在线观看视频 | 国产a∨精品一区二区三区仙踪林 | 亚洲毛片视频 | 香蕉精品视频在线观看 | 91爱爱com | 国产又粗又黄又爽的视频 | 免费色av | 日韩电影在线一区二区 | 91草视频| 亚洲free性xxxx护士hd | 中文字幕亚洲不卡 | 美女隐私免费观看 | 无码人妻一区二区三区在线 | 久久1024 | 好吊视频一二三区 | 午夜在线精品偷拍 | 最新中文字幕在线播放 | 91快射| 国产区精品在线观看 | 国产专区精品 | av看片网站 | 国内久久久 | 国产精品无码自拍 | 天堂va欧美va亚洲va老司机 | 亚洲色中色 | 亚欧成人精品 | 国产高清成人 | 黄色一级片在线看 | 日韩久久毛片 | 中文字幕在线观看av | 欧美一区二区免费视频 | 免费av网站在线 | 伊人色影院 | 欧美日韩精品三区 | 大肉大捧一进一出视频 | ts人妖在线| 亚洲精品18| 日韩欧美成人网 | 后入内射欧美99二区视频 | 在线观看中出 | 成人精品自拍 | av观看网址| 成人激情综合网 | 五月天黄色网 | 中文字幕免费 | 国产精品伦一区二区三级古装电影 | 日本视频免费在线播放 | 好av在线| 女人扒开屁股让男人桶 | 奇米色在线 | 国产视频1区2区 | 国产浪潮av | 羞羞网站在线看 | 日韩精品高清视频 | 欧美一区三区二区在线观看 | 高潮毛片无遮挡 | 黄色片子看看 | 国产欧美精品一区二区三区 | 精品无码一区二区三区的天堂 |