后续内容概述:
Ivs集群:
keepalive:vip实现代理高可用 NAT VPN DR (DR最常用)
数据库:增制改查 备份 高可用 主从复制 读写分离
DBA 市场量小,从业者不多,工资一般般。
中间件: redis.*
分布式存储: ELK日志分析。kafka消息队列
监控zabbix
docker:容器化部罢服务 微服务。
ansibles:自动化运维,比shell好用 playbook
kys:面试占60%,重要,了解工作原理,要能搭起来
上述这些的概念,都必须会,服务要重点掌握
还得会排错,看日志
控制:开 关 重启 /var/log/messages
nginx logs access.log 访问日志
error.log 访问报错日志。
tomcat logs catlina.out
回归正题:
配置
四层转发流量+七层后端代理
环境:
192.168.233.61 nginx四层代理
192.168.233.62 nginx七层代理
192.168.233.63 nginx七层代理
192.168.233.71 tomcat1多实例
192.168.233.72 tomcat2单实例
systemctl stop firewalld
setenforce 0
192.1682.233.61 nginx四层代理:
vim /usr/local/nginx/conf/nginx.conf
pid /usr/local/nginx/run/nginx.pid;
events {
worker_connections 1024;
}
stream {
upstream test {
server 192.168.233.62:80;
server 192.168.233.63:80;
}
server {
listen 8080;
proxy_pass test;
}
}
nginx七层代理62和63:
upstream ky30 {
server 192.168.233.71:8080 weight=1;
server 192.168.233.71:8081 weight=1;
server 192.168.233.72:8080 weight=1;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location ~ .*\.jsp$ {
proxy_pass http://ky30; #配置Nginx处理动态页面请求,将 .jsp文件请求转发到Tomcat 服务器处理
proxy_set_header HOST $host; #设定后端的Web服务器接收到的请求访问的主机名(域名或IP、端口),
默认HOST的值为proxy_pass指令设置的主机名。
proxy_set_header X-Real-IP $remote_addr; #把$remote_addr赋值给X-Real-IP,来获取源IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#在nginx 作为代理服务器时,设置的IP列表,会把经过的机器ip,代理机器ip都记录下来
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
root /usr/local/nginx/html;
expires 10d;
}
配置相同
192.168.233.71 tomcat1多实例:
cp -a /usr/local/tomcat/tomcat1 /usr/local/tomcat/tomcat2
#配置多实例tomcat
vim /etc/profile.d/tomcat.sh
#tomcat1的全局变量设置
export CATALINA_HOME1=/usr/local/tomcat/tomcat1
export CATALINA_BASE1=/usr/local/tomcat/tomcat1
export TOMCAT_HOME1=/usr/local/tomcat/tomcat1
#tomcat2的全局变量设置
export CATALINA_HOME2=/usr/local/tomcat/tomcat2
export CATALINA_BASE2=/usr/local/tomcat/tomcat2
export TOMCAT_HOME2=/usr/local/tomcat/tomcat2
#加载设置好的全局变量
source /etc/profile.d/tomcat.sh
修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号
vim /usr/local/tomcat/tomcat2/conf/server.xml
<Server port="8006" shutdown="SHUTDOWN"> #22行,修改Server prot,默认为8005 -> 修改为8006
<Connector port="8081" protocol="HTTP/1.1" #69行,修改Connector port,HTTP/1.1 默认为8080 -> 修改为8081
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" /> #116行,修改Connector port AJP/1.3,
默认为8009 -> 修改为8010
修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量
vim /usr/local/tomcat/tomcat1/bin/startup.sh
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
##添加以下内容
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1
vim /usr/local/tomcat/tomcat1/bin/shutdown.sh
# -----------------------------------------------------------------------------
# Stop script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE=$CATALINA_BASE1
export CATALINA_HOME=$CATALINA_HOME1
export TOMCAT_HOME=$TOMCAT_HOME1
vim /usr/local/tomcat/tomcat2/bin/startup.sh
# -----------------------------------------------------------------------------
# Start Script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE=$CATALINA_BASE2
export CATALINA_HOME=$CATALINA_HOME2
export TOMCAT_HOME=$TOMCAT_HOME2
vim /usr/local/tomcat/tomcat2/bin/shutdown.sh
# -----------------------------------------------------------------------------
# Stop script for the CATALINA Server
# -----------------------------------------------------------------------------
export CATALINA_BASE=$CATALINA_BASE2
export CATALINA_HOME=$CATALINA_HOME2
export TOMCAT_HOME=$TOMCAT_HOME2
配置tomcat01的测试页面
mkdir /usr/local/tomcat/tomcat1/webapps/test
vim /usr/local/tomcat/tomcat1/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>tomcat01</title>
</head>
<body>
<% out.println("tomcat01 running");%>
</body>
</html>
步骤详解:
原理图:
先在撰写栏关闭防火墙和安全机制(对所有机器进行相同操作)
先从代理服务器开始
用四层做代理:
把listen80改一下
或者把下面的80改为81
两个,一个是我们指定的80,一个是http模块里面的81,这样访问代理服务器就能使用默认端口80访问了
配置nginx2和nginx3既作为静态页面也作为七层代理转发动态请求
nginx2
七层代理要到http模块当中做
后端转发请求,要配置location
nginx3同样需要配置
同样的在http模块里面配置
tomcat作为后端服务器,配置一下页面和hosts即可
一样,删除原来的host添加新的host
到bin目录下重启服务
测试一下能否正常访问
tomcat2
先看一下能否正常访问
一样在webapps里创建一个test目录,然后vim index.jsp
cd到conf目录下,vim server.xml
删除原来的host,添加新host
再到bin目录下重启一下
访问看一下
后端配置完毕,配置前端页面
nginx2
nginx3
一样把图片拖进来
注意:图片名字要和你写的一致
最后修改一下server端口号:
nginx2:
vim nginx.conf
重启一下
同样nginx3也改一下nginx.conf
重启一下
测试一下:
62页面:
63:
通过代理地址来访问:
发现前端不能轮询,设置一下前端的负载均衡,把keepalive timeout暂时调整为0
让他切换(关闭连接保持)就可以看到轮询的效果了
然后restart一下
再来访问看一下
这样就实现了轮询,但是要等一段时间,因为图片较大,需要时间加载