nginx+tomcat 实现反向代理及负载均衡

环境搭建:一台nginx服务器 两台tomcat服务器nginx的安装可以参考我的另一篇博客《nginx安装》tomcat依赖于jdk
nginx 服务器 192.168.10.229:80
tomcat1 192.168.10.229:8080
tomcat2 192.168.10.194:8080
安装jdk ,首先下载jdk的压缩包,放在/usr/java/目录下,解压缩。建立一个软连接

root@ubuntu:/usr/java/jdk1.7.0_79# ln -s /usr/java/jdk1.7.0_79/ /usr/jdk1.7

配置环境变量,在/etc/profile中加入

root@ubuntu:/usr/java/jdk1.7.0_79# vi /etc/profile

JAVA_HOME=/usr/jdk1.7
CLASSPATH=.:$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

注意CLASSPATH=.:$JAVA_HOME/lib/ 前面的.:不要忘记了,否则在执行java 命令时会出现找不到main方法
重启或执行

root@ubuntu:/usr/java/jdk1.7.0_79# source /etc/profile
root@ubuntu:/usr/java/jdk1.7.0_79# 

查看java版本

root@ubuntu:/usr/java/jdk1.7.0_79# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
root@ubuntu:/usr/java/jdk1.7.0_79# javac -version
javac 1.7.0_79
root@ubuntu:/usr/java/jdk1.7.0_79# 

编写一个helloworld

root@ubuntu:/usr/java/jdk1.7.0_79# vi HelloWorld.java
class HelloWorld{
        public static void main(String[] args){
                System.out.println("HelloWorld");
        }
}

编译执行

root@ubuntu:/usr/java/jdk1.7.0_79# javac HelloWorld.java
root@ubuntu:/usr/java/jdk1.7.0_79# java HelloWorld
HelloWorld
root@ubuntu:/usr/java/jdk1.7.0_79#

成功
下载两个tomcat 放在两台不同的服务器上,注意tomcat版本与jdk版本相对应,没有两台服务器就用不同的端口表示(server.xml所有的port都需要与另一个tomcat端口不一样)。我这里没有修改端口,默认为8080

分别在tomcat 目录下的webapps/ROOT目录下新建一个tomcat.html文件

tomcat1
root@ubuntu:/usr/local/tomcat/apache-tomcat-6.0.47/webapps/ROOT# vi tomcat.html
<h1>tomcat1</h1

tomcat2
root@ubuntu:/usr/tomcat/apache-tomcat-7.0.72/webapps/ROOT# vi tomcat.html
<h1>tomcat2</h1>

启动两个tomcat

root@ubuntu:/usr/local/tomcat/apache-tomcat-6.0.47/bin# ./startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat/apache-tomcat-6.0.47
Using CATALINA_HOME:   /usr/local/tomcat/apache-tomcat-6.0.47
Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-6.0.47/temp
Using JRE_HOME:        /usr/jdk
Using CLASSPATH:       /usr/local/tomcat/apache-tomcat-6.0.47/bin/bootstrap.jar
root@ubuntu:/usr/local/tomcat/apache-tomcat-6.0.47/bin# 

root@ubuntu:/usr/tomcat/apache-tomcat-7.0.72/bin# ./startup.sh 
Using CATALINA_BASE:   /usr/tomcat/apache-tomcat-7.0.72
Using CATALINA_HOME:   /usr/tomcat/apache-tomcat-7.0.72
Using CATALINA_TMPDIR: /usr/tomcat/apache-tomcat-7.0.72/temp
Using JRE_HOME:        /usr/jdk1.7
Using CLASSPATH:       /usr/tomcat/apache-tomcat-7.0.72/bin/bootstrap.jar:/usr/tomcat/apache-tomcat-7.0.72/bin/tomcat-juli.jar
Tomcat started.
root@ubuntu:/usr/tomcat/apache-tomcat-7.0.72/bin#

启动成功
这里写图片描述
这里写图片描述

修改nginx.conf配置文件 添加

 upstream tomcats{
            server 192.168.10.229:8080;
            server 192.168.10.194:8080;
        }
        server {
          listen     801;
          server_name 192.168.10.229;
          location / {
             proxy_pass   http://tomcats;
          }
        }

因为80端口被其他应用占用,这里我用801端口。location / 匹配任何路径,proxy_pass表示当路径匹配时 由tomcats去处理(http://表示 http服务,是url的前缀)tomcats 指向upstream tomcats 。如果有多个服务器,可以在upstream tomcats 中添加多个server,每一个server还可以通过weight 设置权重。nginx采用轮询的方式保证负载均衡。譬如输入http://192.168.10.229:801/url/tomcat.html 实际是由http://192.168.10.229:8080/url/tomcat.htmlhttp://192.168.10.194:8080/url/tomcat.html 来处理请求。

重启nginx

现在通过访问nginx服务器来实验
这里写图片描述
这里写图片描述

猜你喜欢

转载自blog.csdn.net/name_is_wl/article/details/52982755
今日推荐