环境搭建:一台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.html和http://192.168.10.194:8080/url/tomcat.html 来处理请求。
重启nginx
现在通过访问nginx服务器来实验