第6章 Nginx+Tomcat(实现负载均衡,实现动静分离)
一、Tomcat
1.1、Tomcat的概述
Tomcat是Apache 软件基金会(Apache Software Fundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司以及个人共同开发,由于由Sun的参与支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat5支持最新的Servelet 2.4和JSP2.0规范,因为Tomcat技术先进、性能稳定,而且最大的优点:免费,所有深受JAVA爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的WEB应用服务器(俗称:WEB容器),目前的最新本版是8.0
常用的WEB容器:
IIS
Apache
Nginx
lighthttp
Tomcat
Jetty
1.2、业务概述
(1)、如果你们公司规模比较小,WEB层的server低于15台,而且你们公司WEB程序用java开发的所谓的jsp,
这个时候,直接用Nginx最负载均衡(反向代理),这里的Nginx和Tomcat是分开的
比如说:
Nginx server1:10.0.0.201 动静分离在这个机器实现。
Tomcat WEB1:10.0.0.202
Tomcat WEB1:10.0.0.203
Tomcat WEB1:10.0.0.204
Tomcat WEB1:10.0.0.205
(2)、如果你们公司的规模比较大,WEB层的Server大于15台以上,你们公司用的JAVA(jsp)的WEB程序,这个时候
用lvs做负载均衡,然后+Nginx+Tomcat实现动静分离,这里的Nginx和Tomcat是结合在一起,每台WEB server都需要安装一个Ningx和Tomcat。
Lvs server 10.0.0.201
Ningx+Tomcat WEB1:10.0.0.202
Ningx+Tomcat WEB1:10.0.0.203
Ningx+Tomcat WEB1:10.0.0.204
Ningx+Tomcat WEB1:10.0.0.205
1.3、安装jdk
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
# tar -xvf jdk-8u5-linux-x64.tar.gz
# mv jdk1.8.0_05/ /usr/local/java
# vim /etc/profile
JAVA_HOME=/usr/local/java
JRE_HOME=/usr/local/java/jre
PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
# source /etc/profile
# java -version
1.4、安装tomcat
http://apache.fayea.com/apache-mirror/tomcat/tomcat-7/v7.0.54/bin/apache-tomcat-7.0.54.tar.gz
# tar -xvf apache-tomcat-7.0.54.tar.gz
# mv apache-tomcat-7.0.54 /usr/local/tomcat
1.5、配置Tomcat
# vim /usr/local/tomcat/conf/server.xml
<Connector port="8080" protocol="HTTP/1.1" 索搜此项修改默认WEB端口
connectionTimeout="20000"
redirectPort="8443" />
<Host name="localhost" appBase="zeng" 可以修改域名或者IP,但作代理请保持localhost
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="/opt/zeng"></Context> 新增此项 修改WEB的家目录
1.6、启动tomcat
[root@slave bin]# ./startup.sh start
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/java/jre
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
关闭Tomcat:
[root@slave bin]#./shutdown.sh
二、Nginx配置
(1)、编辑Nginx.conf
在配置文件的尾部增加:
include vhost.www.daili.com;
(2)、编辑虚拟配置文件
#vim /usr/local/services/nginx-0.8.55/conf/vhost.www.daili.com
upstream webcount {
server 10.0.0.202:8080 weight=1 max_fails=3 fail_timeout=20s;
}
server {
listen 80;
server_name www.aatest.com;
charset utf-8;
location ~ (\.jsp)|(\.do)$ {
index index.html index.htm index.jsp index.do;
proxy_pass http://webcount;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 100m;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|html|htm)$
{
root /opt/alvin;
expires 30d;
}