nginx 加 双tomcat 实现负载均衡

#java   #nginx   #tomcat   #教程  

作者 Tenie
2017-07-26 00:00:00 字数: 2558 阅读: 25 评论: 0

下面的配置是本人在linux 环境中的部分配置信息,, 亲测可运行~ 

一. 首先nginx 配置文件

user  nginx;

worker_processes  1;

error_log  /var/log/nginx/error.log warn;

pid        /var/run/nginx.pid;

events {

    worker_connections  1024;

}

http {

    include       /etc/nginx/mime.types;

    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;

    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;

#add my  https server config

upstream tomcat_group {

        ip_hash;   #根据客户端ip的哈希值来分配后端的服务其,这样session问题解决

    server 127.0.0.1:8080;    

       server 127.0.0.1:8088;    

        }

server {  

       #监听所以443端口

listen       443  ssl;

#server_name ~^(www\.)?(.+)$; #根据正则,匹配请求的url, 匹配上了就访问应用服务器

 

#  ssl配置                                         

        ssl on;

        ssl_certificate /root/Nginx/1_www.tenie.net_bundle.crt; #证书路径,根据自己存放地址调整

        ssl_certificate_key /root/Nginx/2_www.tenie.net.key;

         client_max_body_size 1024M;

 

        location / {

             proxy_pass http://tomcat_group;     #这个改为upstream 名

             proxy_set_header Host $host:$server_port;

             # root /home/tenie/Theme; 定义首页

             index http://tomcat_group/index.html;      #这个改为upstream 名

       }

    }

server {  

   #监听所有80端口

       listen  80;  

       server_name ~^(www\.)?(.+)$;  

      

      # rewrite ^(.*)$  https://$host$1 permanent;  

      #返回304重定向到https ,让浏览器去访问https://url+查询字符串

      rewrite ^(.*)$  https://www.tenie.net$1 permanent;  

}  

}

二, java 环境变量和两个tomcat的环境变量配置

java的配置:

说明: 使用yum 装的java 后发现echo $JAVA_HOME 是空, 在/etc/alternatives 中有java的软链接,

在/etc/profile 的最后加上java环境变量配置

#set java environament

JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64 #这里可以用那个java软链接

PATH=$PATH:$JAVA_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME CLASSPATH PATH

tomcat的配置: 

1. 把下载的tomcat解压2分(目录自己指定好) ,  

   这里我用了一个9和一个8.5的tomcat, 目前没问题, 前期用2个9用过一段事件后, 出了问题, 一个tomcat始终起不来还不报错 

2. 然后在/etc/profile 的最后加上配置

#第一个tomcat的配置

TOMCAT_HOME=/yourpath/apache-tomcat-9.0.0.M18

CATALINA_HOME=/yourpath/apache-tomcat-9.0.0.M18

CATLINA_BASE=/yourpath/apache-tomcat-9.0.0.M18

export TOMCAT_HOME  CATALINA_HOME  CATALINA_BASH

#第二个tomcat的配置

TOMCAT_HOME_1=/yourpath/apache-tomcat-8.5

CATALINA_HOME_1=/yourpath/apache-tomcat-8.5

CATLINA_BASE_1=/yourpath/apache-tomcat-8.5

export TOMCAT_HOME_1  CATALINA_HOME_1  CATALINA_BASH_1

3. 修改/yourpath/apache-tomcat-8.5/bin/catalina.sh 

所以CATALINA_HOME字符串 =>改为: CATALINA_HOME_1 

4. 修改/yourpath/apache-tomcat-8.5/conf/server.xml

//找到这些port把原值改掉就好,下面是我的配置文件中复制的

<Connector port="8088" protocol="HTTP/1.1"

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

<Server port="8085" shutdown="SHUTDOWN">

5.环境中使用tomcat9, 启动会生成随机数会比较慢, 修改catalina.sh 后让它去读操作系统生成的随机数

JAVA_OPTS="$JAVA_OPTS -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Djava.security.egd=file:/dev/./urandom"