知识点
使用nginx(port 80)负载均衡 两个tomcat(port 8081、8082)
Nginx 下载地址:http://nginx.org/en/download.html
选择稳定版本Stableversion nginx/Windows-1.10.2
网上参考书:http://tengine.taobao.org/book/
硬件环境 VMware中Windows Service 2008 版
软件版本 tomcat7、nginx、测试页面
详细
1. 更改本地host记录 为www.lushunde.com做测试
a) 更改windows的host地址
2. 配置tomcat port:8081
a) 添加测试页面
一个项目放在两个tomcat里,每个主页添加上<h1>port:808*</h1>来区分是哪个tomcat处理的请求。
b) 配置service.xml的conf文件。
例:使用8081端口配置tomcat(注意四点改变)
<Server port="8001"shutdown="SHUTDOWN">
<Connector port="8081"protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
<Connector port="8091"protocol="AJP/1.3" redirectPort="8443" />
<ContextdocBase="C:\tomcat\apache-tomcat-7.0.69-8081\webapps\mrlu"path="" />
<?xmlversion='1.0' encoding='utf-8'?>
<Server port="8001"shutdown="SHUTDOWN">
<ListenerclassName="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener"SSLEngine="on" />
<ListenerclassName="org.apache.catalina.core.JasperListener" />
<ListenerclassName="org.apache.catalina.core.JreMemoryLeakPreventionListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<ListenerclassName="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User databasethat can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="Catalina">
<Connector port="8081"protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>
<Connector port="8091"protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina"defaultHost="localhost">
<RealmclassName="org.apache.catalina.realm.LockOutRealm">
<RealmclassName="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<ContextdocBase="C:\tomcat\apache-tomcat-7.0.69-8081\webapps\mrlu"path="" />
<ValveclassName="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>
在配置一个8082的tomcat,其他都一样
通过浏览器输入www.lushunde.com:8081 访问8081的tomcat,主页显示 port:8081
输入www.lushunde.com:8082 访问8082的tomcat,主页显示 port:8082
两个tomcat可以直接访问并区分显示即可。
3. 配置nginx负载均衡两个tomcat
a) Nginx的启动重启关闭命令
启动双击nginx.exe文件即可
启动Cmd 命令行到nginx根目录 start nginx
重启 Cmd 命令行到nginx根目录 nginx –s reload
退出Cmd 命令行到nginx根目录nginx.exe -s quit
关闭Cmd 命令行到nginx根目录 nginx –s stop
查看nginx运行状况
b) 配置文件 nginx.conf
#用户组,一般linux中使用
#user nobody;
#使用进程数,一般等于cpu进程数
worker_processes 2;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
#事件,每个进程可以产生的线程数
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local]"$request" '
# '$status$body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
#集群地址或者端口或者域名,负载均衡使用
upstream www.lushunde.com {
#此处为轮询策略 换成你自己的tomcat地址
#可以根据自己的需求配置多个tomcat,当某个地址无效时,nginx会自动切换
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
server {
#nginx监听
listen 80;
#nginx监听的域名或者地址
server_name www.lushunde.com;
#charset koi8-r;
#access_log logs/host.access.log main;
#nginx监听到请求发往地址,一般是上面upstream定义的负载均衡的地址名称,负载均衡
location / {
proxy_passhttp://www.lushunde.com;
proxy_connect_timeout600;
proxy_read_timeout600;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
此时启动nginx和tomcat之后,可以通过www.lushunde.com查看,默认访问tomcat为轮询机制做的负载均衡。
4.配置nginx返回测试页面下静态资源
在nginx.conf配置文件下添加以下代码。
#此颜色主要是由nginx处理静态页面
location ~.*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)${
#root后面的是静态资源根目录,相当于tomcat中的项目跟路径,将静态资源以相同目录形式放置到这里即可
root ./html;
#expires定义用户浏览器缓存的时间为7天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力
expires 7d;
}
然后重载nginx后访问,此时tomcat中将没有html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css文件请求,只有其他请求。