1. 程式人生 > >Linux(CentOS)下Nginx+Tomcat叢集+Redis共享Session搭建

Linux(CentOS)下Nginx+Tomcat叢集+Redis共享Session搭建

Linux(CentOS7)下Nginx+Tomcat叢集+Redis共享Session搭建

版本:CentOS7+Nginx1.12.2+Tomcat7.085+Redis3.2.1+Java7

1.    下載安裝Nginx(直接解壓就行)

a)    安裝Nginx

b)修改conf/nginx.conf:

upstream tomcats {
        server 127.0.0.1:18080 weight=2 max_fails=3 fail_timeout=15;
        server 127.0.0.1:28080 weight=1;
        server 127.0.0.1:38080 weight=1;
    }
    server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            root   html;
            index  index.html index.htm;
			proxy_pass      http://tomcats;
        }

2.    下載tomcat解壓複製幾份(看專案需求)


a) 修改tomcat(所有的tomcat)資料夾中conf/context.xml檔案,在context節點下新增如下配置:注意官方給的有誤,很多部落格也跟著傳,我也掉坑裡了。複製我的就好。如下:

<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve"/>

<Manager className="com.radiadesign.catalina.session.RedisSessionManager"

     host="localhost"

     port="6379"

     database="0"

     maxInactiveInterval="60"/>

b)conf/server.xml檔案中的埠根據規劃依次修改。要改三個地方:

我的是在埠前都加了1,2,3等等

1. <Server port="18005"shutdown="SHUTDOWN">

2. <Connector port="18080"protocol="HTTP/1.1"

               connectionTimeout="20000"

              redirectPort="8443" />

3     <Connector port="18009" protocol="AJP/1.3"redirectPort="8443" />

c)在tomcat的lib資料夾下分別新增6個jar檔案,這個地方jar檔案的版本有可能會有衝突,配置的時候需要多嘗試.

3.    安裝redis,並且啟動

4.    在三個tomcat的webapps/ROOT目錄下,修改index.jsp

<%@ pagelanguage="java" %> 

   <html> 
     <head><title>TomcatA</title></head> 
     <body> 
        <tablealign="centre" border="1"> 
         <tr> 
           <td>Session ID</td> 
           <td><%= session.getId() %></td> 
         </tr> 
         <tr> 
           <td>Created on</td> 
           <td><%= session.getCreationTime() %></td> 
        </tr> 
       </table> 
     </body> 
   </html> 
   sessionID:<%=session.getId()%>  
    <br>  
   SessionIP:<%=request.getServerName()%>  
    <br>  
   SessionPort:<%=request.getServerPort()%>  
    <%  

    //為了區分,第二個可以是222 

   out.println("This is Tomcat Server 333333333333");  

    %>    

測試結果: