一,部署多实例
部署多实例的话,我们需要在同一虚拟机上创建两份tomcat
首先把包放进opt目录下
然后解压出两份放进 /usr/local/tomcat/目录下
配置tomcat环境变量
souce /etc/profile.d/tomcat.sh
因为tomcat端口默认是8080等,所以我们要去tomcat2的配置文件中修改端口
vim /usr/local/tomcat/tomcat2/conf/server.xml
然后还要修改各tomcat实例中startup.sh和shutdown.sh文件,添加tomcat环境变量
在tomcat1中添加:
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1
在tomcat2中添加:
export CATALINA_BASE=$CATALINA_BASE2
export CATALINA_HOME=$CATALINA_HOME2
export TOMCAT_HOME=$TOMCAT_HOME2
每个文件直接在注释行下添加就可以了
启动俩tomcat
都上线了,然后我们来测试一下
8080和8081端口
二,负载均衡实验
准备三台服务器
Nginx:服务器192.168.100.10:80
Tomcat:服务器192.168.100.11:8080
Tomcat:服务器192.168.100.254:8080 192.168.100.254:8081
1.配置Nginx服务器
关闭防火墙,安装Nginx必须环境文件
创建一个可执行用户
进入/opt目录
解压Nginx安装包
进入后配置安装
创建快捷路径:
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
配置nginx启动服务:
启动Nginx服务
2.部署两台tomcat服务器
按第一部分配置好后直接启动就行了
还有一个服务器就用上面所配置的就行
接下来则是动静分离:先用第一台tomcat机子
配置动态网页显示内容
在修改配置文件
vim /usr/local/tomcat/conf/server.xml
指定页面
注:这里必须修改,在下面添加是没用的!!
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
重启
第二台tomcat上配置如下:
第一个test目录中创建一个index.jsp
写入:
第二个:
再分别去各自的server.xml删除配置的HOST实例
改成:
重启服务
查看端口:
再去Nginx配置静态页面和图片
echo '<html><body><h1>这是静态页面</h1></body></html>' > /usr/local/nginx/html/index.html
mkdir /usr/local/nginx/html/img
cp /root/game.jpg /usr/local/nginx/html/img
vim /usr/local/nginx/conf/nginx.conf
轮询模式处理页面
刷新重启服务
补充:
Nginx 负载均衡模式:
●rr 负载均衡模式:
每个请求按时间顺序逐一分配到不同的后端服务器,如果超过了最大失败次数后(max_fails,默认1),在失效时间内(fail_timeout,默认10秒),该节点失效权重变为0,超过失效时间后,则恢复正常,或者全部节点都为down后,那么将所有节点都恢复为有效继续探测,一般来说rr可以根据权重来进行均匀分配。
●least_conn 最少连接:
优先将客户端请求调度到当前连接最少的服务器。
●ip_hash 负载均衡模式:
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题,但是ip_hash会造成负载不均,有的服务请求接受多,有的服务请求接受少,所以不建议采用ip_hash模式,session 共享问题可用后端服务的 session 共享代替 nginx 的 ip_hash。
●fair(第三方)负载均衡模式:
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
●url_hash(第三方)负载均衡模式:
和ip_hash算法类似,是对每个请求按url的hash结果分配,使每个URL定向到一个同 一个后端服务器,但是也会造成分配不均的问题,这种模式后端服务器为缓存时比较好
Nginx 四层代理配置:
和http同等级:所以一般只在http上面一段设置,
stream {
log_format main ‘$remote_addr
u
p
s
t
r
e
a
m
a
d
d
r
−
[
upstream_addr - [
upstreamaddr−[time_local] $status $upstream_bytes_sent’;
access_log /var/log/nginx/k8s-access.log main;
upstream appserver{
server 192.168.80.100:8080 weight=1;
server 192.168.80.101:8080 weight=1;
server 192.168.80.101:8081 weight=1;
}
server {
listen 8080;
proxy_pass appserver;
}
}
http {
…
注:配置4层代理,记得在Nginx中添加 --with-stream 模块