Heim  >  Artikel  >  Backend-Entwicklung  >  Nginx-Ladeplaner + Duale Tomcat-Lade- und Sitzungsfreigabe + MySQL-Back-End-Datenbank

Nginx-Ladeplaner + Duale Tomcat-Lade- und Sitzungsfreigabe + MySQL-Back-End-Datenbank

不言
不言Original
2018-07-07 16:43:161958Durchsuche

Dieser Artikel stellt hauptsächlich den Nginx-Ladeplaner + die duale Tomcat-Lade- und Sitzungsfreigabe + die MySQL-Backend-Datenbank vor. Jetzt kann ich ihn mit Ihnen teilen

Nginx-Ladeplaner + Duale Tomcat-Lade- und Sitzungsreplikation + MySQL-Backend-Datenbank

Umgebung:

IP 作用
192.168.2.5 nginx
192.168.2.6 tomcat1
192.168.2.7 tomcat2
192.168.2.8 mysql

1. Konfiguration vor der Sitzungsfreigabe

Schritte:

①Schließen Sie die Firewall oder öffnen Sie die Ports 80, 8080, 3306, schließen Sie Selinux

②Installieren Sie Nginx

从nginx官网下载最新版
wget http://nginx.org/download/nginx-1.13.9.tar.gz

[root@192 ~]# yum -y install pcre-devel zlib- devel gcc gcc -c++ make

[root@192 ~]# useradd -M -s /sbin/nologin nginx

[root@192 ~]# tar zxf nginx-1.13.9 -C /usr/src

[root@192 ~]# cd /usr/src/nginx-1.13.9/

[root@192 nginx-1.13.9] # ./ configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install

[root@192 ~]# ln -s /usr/ local/nginx/sbin/nginx /usr/local/sbin

Nginx nicht starten

③Zwei Tomcat-Hosts zur Installation

jdk从官网下载需要许可,允许之后下载至本地,导入主机
tomcat从官网downloads找到tomcat7.0或者更高版本
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.86/bin/apache-tomcat-7.0.86.tar.gz

[root@ 192 ~]# tar zxf jdk-7u65-linux-x64.gz -C /usr/src

[root@192 ~]# tar zxf apache-tomcat-7.0.54.tar gz -C /. usr/src

[root@192 ~]# mv jdk1.7.0_65/ /usr/local/java

[root@192 ~]# mv apache-tomcat- 7.0.54/ /usr/local/tomcat7

[root@192 ~]# vim /etc/profile

export JAVA_HOME=/usr/local/java
export CATALINA_HOME=/usr/local/tomcat7
export PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH

[root@192 ~]# source /etc/profile

[ root@192 ~]# Java -Version

java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

[root@192 ~]# catalina.sh version

Using CATALINA_BASE:   /usr/local/tomcat7
Using CATALINA_HOME:   /usr/local/tomcat7
Using CATALINA_TMPDIR: /usr/local/tomcat7/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jar
Server version: Apache Tomcat/7.0.
Server built:   May 19 2014 10:26:15
Server number:  7.0.86.0
OS Name:        Linux
OS Version:     3.10.0-327.el7.x86_64
Architecture:   amd64
JVM Version:    1.7.0_65-b17
JVM Vendor:     Oracle Corporation

Starte Tomcat
[root@192 ~]# /usr/local /tomcat7/bin/startup.sh

Using CATALINA_BASE:   /usr/local/tomcat7
Using CATALINA_HOME:   /usr/local/tomcat7
Using CATALINA_TMPDIR: /usr/local/tomcat7/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jar
Tomcat started.

Testzugriff

http://192.168.2.6:8080
http://192.168.2.7:8080

④Ändern Sie Tomcat-Konfigurationsdateien auf zwei Hosts
[root@192 ~]#cd /usr/local/tomcat7/conf

[root@192 ~]#cp server.xml server

[root@192 ~]#vim server.xml

.......
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat-1">
<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Context docBase="/web/webapp1" path="" reloadable="true"/>

[root@192 ~]#mkdir -p /web/webapp1

[root@ 192 ~]#vim /web/webapp1/index.jsp

<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
 <head>
<title>tomcat-1</title>
 </head>
<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>Create on</td>
<td><%= session.getCreationTime() %></td>
</tr>
   </table>
</body>
</html>

Tomcat neu starten
[root@192 ~]#shutdown.sh
[root@192 ~]#startup.sh

Hinweis: Der Unterschied zwischen dem zweiten Host und dem Server ist jvmRoute="tomcat-2" in server.xml und tomcat-2

in index.jsp

Der Testzugriff zeigt, dass die Sitzungs-IDs der beiden Tomcat-Hosts unterschiedlich sind, und die Vorbereitungen sind abgeschlossen

http://192.168.2.6:8080
http://192.168.2.7:8008

2. Sitzungsfreigabekonfiguration

Schritte:

① Sitzungsfreigabecluster auf zwei Hosts konfigurieren
[root@192 ~]#vim /usr/local/tomcat7/ conf/server /web.xml WEB-INF/

[root@192 ~]#vim WEB-INF/web.xml

.......
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat-1">

      <!--For clustering, please take a look at documentation at:
          /docs/cluster-howto.html  (simple how to)
          /docs/config/cluster.html (reference documentation) -->
      <!--
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
      -->
      <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.catal

ina.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="192.168.2.5"
                        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"
                temDir="/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>
  <!-- Use the LockOutRealm to prevent attempts to guess user passwords
       via a brute-force attack -->
  <Realm className="org.apache.catalina.realm.LockOutRealm">
    <!-- This Realm uses the UserDatabase configured in the global JNDI
         resources under the key "UserDatabase".  Any edits
         that are performed against this UserDatabase are immediately
         available for use by the Realm.  -->
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
           resourceName="UserDatabase"/>
  </Realm>

  <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">
    <Context docBase="/web/webapp1" path="" reloadable="true"/>

Wenn Sie die Firewall aktivieren, aktivieren Sie Folgendes

[root@192 ~]#firewall-cmd --add-port=45564/udp --permanent
[root@192 ~]#firewall-cmd -- add-port=4000/ tcp --permanent
[root@192 ~]#firewall-cmd --reload
Tomcat neu starten[root@192 ~]#shutdown.sh [root@192 ~]#startup.sh


Hinweis: Die beiden Tomcat-Konfigurationen sind gleich, verweisen nur auf die IP-Adresse des zweiten Hosts im Empfängerabschnitt

②Nginx konfigurieren[root@192 ~]#vim /usr/local/nginx/conf/nginx.conf

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0">
<distributable/>  #添加这个单词,必须有这一步,否则用户的session没法使用
Starten Sie Nginx und besuchen Sie die Nginx-Adresse und aktualisieren Sie die Seite, um den Zugriff zu testen


[root@192 ~]#nginx

http://192.168.2.5

3. Stellen Sie eine Verbindung zur MySQL-Datenbank her

Schritte:

①192.168.2 Der MySQL-Container in .8 dient als Datenbankserver, konfigurieren Sie MySQL:

MySQL>Gewähren Sie alle Berechtigungen für

.

an javauser@'192.168. 2.%' identifiziert durch '123.com';


mysql>create Database javatestmysql>use javatest

mysql>create table testdata(id int not null auto_increment Primary Key,foo varchar(25),bar varchar(10)) ;

mysql>insert into testdata(foo,bar) Values('hello','123.com');

mysql>select * from testdata;

②下载mysql-connector-java-5.1.22-bin.jar 复制到tomcat7/lib/目录下(两台tomcat都需要配置)
[root@192 ~]# cp mysql-connector-java-5.1.22-bin.jar /usr/local/tomcat7/lib/

③配置context.xml
[root@192 ~]# cp /usr/local/tomcat7/conf/context.xml /usr/local/tomcat7/conf/context.xml.bak

[root@192 ~]# vim /usr/local/tomcat7/conf/context.xml

<Context>

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
              maxActive="100" maxIdle="30" maxWait="10000"
              username="javauser" password="123.com" driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://192.168.2.8:3306/javatest"/>

④配置web.xml
[root@192 ~]# vim /web/webapp1/web.xml

......
<distributable/>
<description>MySQL Test App</description>
 <resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/TestDB</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
 </resource-ref>

⑤编写连接数据库jsp文件
[root@192 ~]# vim /web/webapp1/test.jsp

<%@ page language="java" import="java.sql.*" pageEncoding="GB2312"%>
<html>
  <head>
    <title>MySQL</title>
  </head>
<body>
connect MySQL<br>
<%
String driverClass="com.mysql.jdbc.Driver";
String url="jdbc:mysql://192.168.2.8:3306/javatest";
String username = "javauser";
String password = "123.com";
Class.forName(driverClass);
Connection conn=DriverManager.getConnection(url, username, password);
Statement stmt=conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from testdata");
while(rs.next()){
 out.println("<br>foo:"+rs.getString(2)+"bar:"+rs.getString(3));
}
rs.close();
stmt.close();
conn.close();
%>
</body></html>

⑥重启tomcat,测试连接
[root@192 ~]# shutdown.sh
[root@192 ~]# startup.sh

http://192.168.2.5/test.jsp

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

ThinkPHP5.0 Linux Apache/Nginx重写URL配置

Das obige ist der detaillierte Inhalt vonNginx-Ladeplaner + Duale Tomcat-Lade- und Sitzungsfreigabe + MySQL-Back-End-Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn