• Linux下nginx+多个Tomcat负载均衡的实现


    由于项目需要,共创建了10个Tomcat端,由nginx负责转发。9个Tomcat端口分别是8080,11000,12000,13000,14000,15000,16000,17000,18000,19000.

    nginx配置:upstream Tomcat {

    server xxx.xxx.xx.xxx:8080

    server xxx.xxx.xx.xxx:11000

    ...以此类推

    }

    server配置:

    server{

    if ( $uri = '/' ){
    rewrite .* / break;
    }
    location / {
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://tomcat;
    }

    server{

    if ( $uri = '/' ){
    rewrite .* / break;
    }
    location / {
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://tomcat;
    }

    ...依次类推

    }

    其他类似。主要是Tomcat这里配置比较繁琐。

    1,下载jdk安装包,这里下载的是1.8版本的。

    2,解压。

    3,安装路径在/usr/java目录中

    4,环境变量的配置:

    vim /etc/profile进入编辑:

    export JAVA_HOME=/usr/java/jdk1.8.0_131
    export JRE_HOME=/usr/java/jdk1.8.0_131/jre
    export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
    export PATH=$JAVA_HOME/bin:/usr/local/nginx/sbin:/usr/local/php/bin:/usr/local/mysql/bin:$PATH

    添加完成之后source /etc/profile使其生效。

    检测:在命令行输入Java -version即可看到JDK版本等信息,表示安装成功。接着是Tomcat的配置。

    tomcat:

    1,下载安装包,这里下载的是apache-tomcat-8.5.15.tar.gz。

    2,解压安装脚本:

    for i in crm dz jz tb wm xyg yg yj lcb gw
    do
    cd /usr/local
    tar -zxf apache-tomcat-8.5.15.tar.gz
    mv -f apache-tomcat-8.5.15 /usr/local/tomcat/"${i}"  #生成10个Tomcat端
    cd /usr/local/tomcat/"${i}"/bin/
    cat >> catalina.sh <<EOF       #这里的代码主要是配置每个Tomcat端的启动脚本的环境变量
    export CATALINA_BASE=$CATALINA_BASE_${i}  #这里要注意脚本会转换$符号,所以要用单引号把$符号扩起来,让他不要转义
    export CATALINA_HOME=$CATALINA_HOME_${i}
    EOF
    cat >> /etc/profile <<EOF   #这里的代码主要是配置这10个Tomcat端的环境变量

    #${i}

    CATALINA_BASE_${i}=/usr/local/tomcat/${i}
    CATALINA_HOME_${i}=/usr/local/tomcat/${i}
    export CLASSPATH=.:${CATALINA_HOME_${i}}/bin/tomcat-juli.jar:${CATALINA_HOME_${i}}/bin/bootstrap.jar
    export CATALINA_BASE_${i} CATALINA_HOME_${i}

    EOF
    done

    crm dz jz tb wm xyg yg yj lcb gw这些是项目中的名称,可以不用去管他,你也可以自己取名

    接下来,配置每个Tomcat的端口。稍后我会上传自动替换脚本。

    进入每一个Tomcat端的conf目录下,cd /usr/local/tomcat/项目名称/conf

    vim server.xml

    修改3处:

    1)<Server port="8005" shutdown="SHUTDOWN">  port端口号

    2)<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />   port端口号

    3) <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />   port端口号

    之后:cd ../bin/

    修改:

    vim catalina.sh

    查找到:setclasspath这个名称。命令:/setclasspath

    修改$CATALINA_HOME+你项目名称(要对应),注意这里要修改setclasspath这个名称前所有的$CATALINA_HOME

    esc,:wq保存并退出。

    至此,配置基本完成。

    最后,进入到bin目录下,先./shutdown.sh,然后再./startup.sh就成功启动了

    如果网页显示拒绝的话,那么很有可能是防火墙拒绝了,要添加规则

    vim /etc/sysconfig/iptables

    -A INPUT -p tcp -m state --state NEW -m tcp --dport 端口号 -j ACCEPT

    或者

    -A INPUT -s 你的IP地址 -j ACCEPT

     在浏览器地址栏中输入http://localhost:端口,即可访问,默认应该是Tomcat自带目录,一只小猫。

  • 相关阅读:
    十大排序算法之选择排序(2)
    十大排序算法之冒泡排序(1)
    2018年年度总结
    敏捷软件开发学习笔记(四)之结构型设计模式
    敏捷软件开发学习笔记(三)之创造型设计模式
    elasticsearch+head+kibana
    闭包函数延迟绑定问题
    初谈dango的post提交csrf设置和文件上传
    浏览器的同源策略,及如可跨域
    socket并发通信的几种方式
  • 原文地址:https://www.cnblogs.com/magmell/p/7045193.html
Copyright © 2020-2023  润新知