如果哪儿有错,请留言帮我提出来,我也好修改,谢谢!!!
软件包在文章后面可以下载。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
如果出现问题,我们访问网站然后在日志里面就可以看到报错信息,这时候我们就可以根据报错去找到错误并修改