如果哪儿有错,请留言帮我提出来,我也好修改,谢谢!!!
软件包在文章后面可以下载。JDK软件包太大,没法上传,要的给我留言留下邮箱地址就行,我发给你们!!!
转载本文章请留下原文地址,谢谢!!!
实验环境:
操作系统:CentOS 6.5
Nginx服务器:192.168.1.210
Tomcat服务器1:192.168.1.211
Tomcat服务器2:192.168.1.212
主要软件:
jdk-7u65-linux-x64.gz
apache-tomcat-7.0.54.tar.gz
安装准备:
如果是在虚拟机里测试,那就必须关闭防火墙:
server iptables stop
如果是在真实服务器上,那只需要在防火墙策略里添加允许端口即可:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 8080-j ACCEPT
一、Tomcat服务器1配置
1、Tomcat服务器1:192.168.1.211配置如下:
[root@test2 ~]# tar zxvf jdk-7u65-linux-x64.gz
[root@test2 ~]# mv jdk1.7.0_65/ /usr/local/java
2、设置环境变量:
[root@test2 ~]# vim /etc/profile.d/java.sh
#设置JAVA的根目录
export JAVA_HOME=/usr/local/java
#在PATH环境变量中添加java根目录下的bin/子目录
export PATH=$PATH:$JAVA_HOME/bin
3、把脚本导入到环境变量,使其生效
[root@test2 ~]# source /etc/profile.d/java.sh
4、查看安装版本是否一致
[root@test2 ~]# java –versio
5、安装配置Tomcat
[root@test2 ~]#tar zxvf apache-tomcat-7.0.54.tar.gz
[root@test2 ~]# mv apache-tomcat-7.0.54 /usr/local/tomcat7
6、启动Tomcat
[root@test2 ~]# /usr/local/tomcat7/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat7
Using CATALINA_HOME: /usr/local/tomcat7
Using CATALINA_TMPDIR: /usr/local/tomcat7/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jar
Tomcat started.
7、关闭Tomcat
[root@test2 ~]# /usr/local/tomcat7/bin/shutdown.sh
Using CATALINA_BASE: /usr/local/tomcat7
Using CATALINA_HOME: /usr/local/tomcat7
Using CATALINA_TMPDIR: /usr/local/tomcat7/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jar
8、Tomcat默认运行的端口是8080,运行netstat命令来查看它的监听信息
[root@test2 ~]# netstat -anpt |grep 8080
9、打开浏览器测试:http://192.168.1.211:8080/如果出现Apache tomcat/7.0.54就算成功了
10、Tomcat 主要目录说明:
[root@test2 ~]# cd /usr/local/tomcat7/
[root@test2 ~]#ls
--bin/ :存放windows或linux平台上启动和关闭tomcat的脚本文件
--conf/:存放tomcat服务器的各种全局配置文件,其中最重要的就是server.xml和web.xml
--lib/:存放tomcat运行需要的库文件
--logs/:存放tomcat执行时的log文件
--webapps/:tomcat的主要web发布目录
--work/:存放jsp编译后产生的class文件
11、Tomcat主配置文件说明
Server.xml为tomcat的主要配置文件,通过这个配置文件,可以修改tomcat的启动端口、网站目录、虚拟主机、开启https等重要功能。
[root@test2 ~]# vim /usr/local/tomcat7/conf/server.xml
<?xml version='1.0' encoding='utf-8'?>
… … //省略部分内容
<Server port="8005" shutdown="SHUTDOWN">
//Tomcat关闭端口,默认只对本机地址开放,可以在本机通过telnet 127.0.0.1 8005该端口,
//对tomcat进行关闭操作
… … //省略部分内容
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
//Tomcat 启动的默认端口号8080,可以根据需要进行更改
……. //省略部分内容
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
//Tomcat 启动AJP 1.3 连接器时默认的端口号,可以根据需要进行更改
…… //省略部分内容
//下面是为Tomcat定义虚拟主机时的配置及日志配置
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
12、在跟目录下建立一个web目录,并在里面创建一个webapp1目录用于存放网站文件
[root@test2 ~]# mkdir -pv /web/webapp1
mkdir: 已创建目录 "/web"
mkdir: 已创建目录 "/web/webapp1"
13、在webapp1目录下创建一个index.jsp的测试页面
[root@test2 ~]# vim /web/webapp1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="Utf-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<h1>
<% out.println ("welcom to test site,http://www.test1.com");%>
</h1>
</body>
</html>
14、修改Tomcat的server.xml文件
[root@test2 ~]# vim /usr/local/tomcat7/conf/server.xml
//找到以下内容,添加红色部分
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context>
//docBase:web应用的文档基准目录
//reloadable:设置监视“类”是否变化
//path=””设置默认“类”
15、关闭Tomcat再重新启动
[root@test2 ~]# /usr/local/tomcat7/bin/shutdown.sh
[root@test2 ~]# /usr/local/tomcat7/bin/startup.sh
16、通过浏览器访问http://192.168.1.211:8080/出现welcom to test site,http://www.test1.com内容表示tomcat配置成功,并且能够运行jsp了。
二、Tomcat服务器2配置
1、 Tomcat2 配置方法跟Tomcat1是一样的
2、 创建/web/webapp1目录,修改Tomcat配置文件server.xml把网站文件目录更改到/web/webapp1/路径下
[root@test3 ~]# mkdir -pv /web/webapp1
mkdir: 已创建目录 "/web"
mkdir: 已创建目录 "/web/webapp1"
[root@test3 ~]# vim /usr/local/tomcat7/conf/server.xml
//一样找到以下内容,添加红色部分
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/web/webapp1" path="" reloadable="false">
</Context>
3、一样在tomcat2服务器里创建测试页面,修改下页面内容就行了
[root@test2 ~]# vim /web/webapp1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="Utf-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<h1>
<% out.println ("welcom to test site,http://www.test2.com");%>
</h1>
</body>
</html>
4、重新启动Tomcat,用浏览器访问Tomcat2 server 测试http://192.168.1.212:8080
三、Nginx服务器配置
1、安装支持包
[root@test1 ~]# yum install pcre-devel zlib-devel openssl-devel
2、 这儿有两种方法安装Nginx
(1) 源码编译安装:
[root@test1 ~]# groupadd nginx
[root@test1 ~]# useradd -g nginx nginx -s /bin/false
我这儿是已经把Nginx安装包下载好了,直接解压安装就行
[root@test1 ~]#tar zxvf nginx-1.6.0.tar.gz
[root@test1 ~]# cd nginx-1.6.0
[root@test1 nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_ssl_module
编译参数解释如下:
//--user= --group= 是指定用户和组的
//--with-file-aio 是启用文件修改支持的
//--with-http_stub_status_module 是启用的状态
//--with-http_gzip_static_module 是启用gzip静态压缩
//--with-http_flv_module 是启用flv模块
//--with-http_ssl_module 是启用ssl模块
[root@test1 nginx-1.6.0]# make
[root@test1 nginx-1.6.0]# make install
(2) 直接yum安装nginx
[root@test1 ~]# cd /etc/yum.repos.d/
[root@test1 ~]#wget http://www.atomicorp.com/installers/atomic
[root@test1 ~]#sh ./atomic
[root@test1 ~]#yum check-update
[root@test1 ~]#yum install nginx
[root@test1 ~]#service nginx start
[root@test1 ~]#chkconfig nginx on
3、 修改Nginx配置文件
[root@test1 ~]# vim /usr/local/nginx/conf/nginx.conf
在http{ …..}中加入以下代码,这是设定负载均衡的服务器列表,weight里的参数值表示权值,权值越高,被分配到的概率就越大,在企业中,如某服务器性能比其他好,那就可以把他设置得最高。这儿为了测试效果,所以就把权值设置成一样了。
红色部分为新添加内容:
http {
include mime.types;
default_type application/octet-stream;
upstream tomcat_server {
server 192.168.1.211:8080 weight=10;
server 192.168.1.212:8080 weight=10;
}
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
然后在location /里添加内容:
location / {
root html;
index index.html index.htm;
proxy_pass http://tomcat_server;
}
修改的内容解释:
把Nginx默认的站点通过proxy_pass的方式来代理到设定好的tomcat_server负载均衡服务器组上。
4、 测试Nginx配置文件是否正确。提示以下信息为配置正确,如报错,根据报错提示修改。
[root@test1 ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
5、启动Nginx
执行后无错误提示即正确
[root@test1 ~]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
当然,这儿我们可以自己写一个脚本直接使用server来启动。
6、测试负载均衡
在浏览器中访问192.168.1.210,也就是访问Nginx服务器的IP,来回刷新,我们就可以看到显示的不同页面,也就是服务器Tomcat1和服务器Tomcat2的页面信息。这就是负载均衡群集
如果出现网页内容报错,最好的解决方案就是查看日志,根据日志文件提示去解决问题,这也是一个运维工程师必须习惯的一种解决方案
假如我这儿的Nginx服务器报错了,我就可以使用命令查看日志报错信息
[root@test1 ~]# tail -f /usr/local/nginx/logs/access.log
如果出现问题,我们访问网站然后在日志里面就可以看到报错信息,这时候我们就可以根据报错去找到错误并修改