实验环境:
Nginx服务器
Centos-6.5
192.168.1.102
nginx-1.6.0.tar.gz
Tomcat服务器1
Centos-6.5
192.168.1.100
jdk-7u65-linux-x64.gz
apache-tomcat-7.0.54.tar.gz
Tomcat服务器2
Redhat-6.5
192.168.1.101
jdk-7u65-linux-x64.gz
apache-tomcat-7.0.54.tar.gz
注:将所需软件拷贝至/usr/src中
四:实验思路:
部署nginx与Tomcat
实现Tomcat负载均衡
测试实验结果
一:环境准备--Tomcat1 Server
将所需软件拷贝到/usr/src目录中
设置各个服务器的ip地址
配置yum源
1:安装java环境
[root@localhost 桌面]# service iptables stop
[root@localhost 桌面]# yum -y remove java
[root@localhost 桌面]# cd /usr/src
[root@localhost src]# tar xf jdk-7u65-linux-x64.gz
[root@localhost src]# mv jdk1.7.0_65/ /usr/local/java
[root@localhost src]# vi /etc/profile.d/java.sh \\建立java脚本
输入(或者将下面两行直接输入到/etc/profile中,然后source /etc/profile)
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
[root@localhost src]# source /etc/profile.d/java.sh
[root@localhost src]# java -version
2:安装tomcat
[root@localhost ~]# cd /usr/src
[root@localhost src]# tar xf apache-tomcat-7.0.54.tar.gz
[root@localhost src]# mv apache-tomcat-7.0.54 /usr/local/tomcat7
[root@localhost src]# /usr/local/tomcat7/bin/startup.sh
[root@localhost src]# netstat -anpt | grep 8080
打开浏览器验证tomcat
http://127.0.0.1:8080
[root@localhost conf]#cd /usr/local/tomcat7/conf
[root@localhost conf]# vi server.xml \\tomcat的配置文件,内容保持默认
3:建立java的web站点
[root@localhost conf]# mkdir -pv /web/webapp1
[root@localhost conf]# vi /web/webapp1/index.jsp
添加网页代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("welcom to test site,http://www.test1.com");%>
</body>
</html>
[root@localhost conf]# vi server.xml \\cd /usr/local/tomcat7/conf
找到host name位置,添加红色代码,注意大小写(124行)
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context>
解释:
path:表示web应用程序的URL前缀,这样请求的URL为http://IP:8080/path
Reloadable:是否开启类的监控功能,如果为true ,则tomcat 会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes 目录的变化,自动装载新的应用程序,我们可以在不重起tomcat 的情况下改变应用程序
[root@localhost conf]# /usr/local/tomcat7/bin/shutdown.sh
[root@localhost conf]# /usr/local/tomcat7/bin/startup.sh
浏览器访问test1测试网站http://192.168.1.100:8080
二:环境准备--Tomcat2 Server
和tomcat1 Server的设置是一样的
唯一不同的网站,为了看出负载均衡,第二个站点的代码做了调整,这样能看到效果,其实这两个网站提供的是同一个网页。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page</title>
</head>
<body>
<% out.println("welcom to test site,http://www.test2.com");%>
</body>
</html>
[root@localhost conf]# /usr/local/tomcat7/bin/shutdown.sh
[root@localhost conf]# /usr/local/tomcat7/bin/startup.sh
浏览器访问test2测试网站http://192.168.1.101:8080
三:Nginx服务器配置
先配置光盘为yum源
[root@localhost ~]# service iptables stop
[root@localhost ~]# yum -y install pcre-devel zlib-devel openssl-devel
[root@localhost ~]# groupadd www
[root@localhost ~]# useradd -g www www -s /bin/false
[root@localhost ~]# cd /usr/src
[root@localhost src]# tar xf nginx-1.6.0.tar.gz
[root@localhost src]# cd nginx-1.6.0
[root@localhost nginx-1.6.0]#yum -y install gcc* \\安装gcc编译器
[root@localhost nginx-1.6.0]#./configure --prefix=/usr/local/nginx --user=www --group=www --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_ssl_module
注释:
--with-file-aio :启用file aio支持(一种APL文件传输格式)
--with-http_gzip_static_module:在线实时压缩输出数据流
--with-http_flv_module:提供寻求内存使用基于时间的偏移量文件
--with-http_ssl_module:使支持https请求,需已安装openssl
[root@localhost nginx-1.6.0]# make && make install
[root@localhost nginx-1.6.0]# vi /usr/local/nginx/conf/nginx.conf
在http{ }中添加下列语句
upstream tomcat_server{
server 192.168.10.100:8080 weight=1;
server 192.168.10.101:8080 weight=1;
}
在http{……..}中找到server{……..},在localtion/中添加下列红色语句
location / {
root html;
index index.html index.htm;
proxy_pass http://tomcat_server;
}
最终完成的nginx.conf配置文件的内容
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream tomcat_server{
server 192.168.10.100:8080 weight=1;
server 192.168.10.101:8080 weight=1;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
proxy_pass http://tomcat_server;
}
测试nginx配置文件是否正确
[root@localhost nginx-1.6.0]# /usr/local/nginx/sbin/nginx -t
启动nginx服务器
[root@localhost nginx-1.6.0]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
查看nginx服务进程
[root@localhost nginx-1.6.0]# ps aux | grep nginx
查看端口号及PID进程号
[root@localhost nginx-1.6.0]# netstat -anpt | grep nginx
打开网站测试http://192.168.1.102,并不断刷新,观察看到的页面是否test1和test2交替出现
注意:此时打开的是nginx的地址,而不是那两个tomcat的地址,nginx成为了他们的代理