由于是在单机环境模拟多个服务器的环境,所以通过多个tomcat开放不同的端口来实现
一.反向代理
目标:(不加端口号时默认访问80端口,所以在一台服务器上实现两个域名的访问就要做反向代理)
1.创建tomcats目录
mkdir /usr/local/tomcats
tar -zxf apache-tomcat-7.0.47.tar.gz
mv apache-tomcat-7.0.47 /usr/local/tomcats/tomcat1
cp -r tomcat1/ tomcat2
...
2.修改端口
涉及到三个端口的修改:HTTP默认端口8080 远程服务器端口8005 AJP端口8009
vim conf/server.xml
分别修改为8081 8006 8009
...
3.通过修改host实现模拟不同域名的访问
这里有个小工具switchhsot可以方便的进行修改
(将ip+端口 分别与域名关联)
4.修改nginx配置
cd /usr/local/nginx/conf
vim nginx.conf
upstream tomcatserver1{
server 47.94.14.93:8081;
}
upstream tomcatserver2{
server 47.94.14.93:8082;
}
server {
listen 80;
server_name 8081.kaka.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcatserver1;
index index.html index.htm;
}
}
server {
listen 80;
server_name 8082.kaka.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcatserver2;
index index.html index.htm;
}
}
5.访问前面设置的域名,发现都能访问到
二.负载均衡
- 同一个域名下,一台服务器已经不能满足我们的需求,就需要多台服务器,把多个请求分配给不同的服务器来完成,减轻服务器压力,这时候就需要负载均衡
2.配置:
(1)只需要在上面的反向代理的upstream中添加相应的server即可实现平均分配
(2)有时候我们负载均衡服务器的性能不同,所以分配请求的权重不同