1. 一些命令
[1]查看文件内容: cat head tail more
[2]搜索文件 find 目录 -name '文件名'
[3]压缩和解压命令 tar [zxvf| zcvf] 压缩文件名
[4]防火墙的命令:
systemctl status firewalld
systemctl stop firewalld
systemctl restart firewalld
systemctl disable firewalld
firewall-cmd --add-port=port/tcp --zone=public --permanent
firewall-cmd --remove-port=port/tcp --zone=public --permanent
firewall-cmd --list-port
[5]查看进程 ps -ef | grep 进程名
1. shell脚本---看懂
2. nginx--反向代理和负载均衡的服务器
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WEP9bWNy-1659251766685)(assets/1658995559553.png)]](https://1000bd.com/contentImg/2022/08/02/225529789.png)
代理服务器–使用比较多的为nginx代理服务器。
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。开源软件,服务器软件.能够支持高达 50,000 个并发连接数的响应,
现在由哪些企业正在使用nginx?
1. 京东 2.淘宝 3.腾讯 4. 新浪 5.网易等
(1)安装nginx软件所需的依赖插件
yum install -y gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
(2)把我们的nginx安装包上传到linux中并解压
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qe0QTj86-1659251766685)(assets/1658996906147.png)]](https://1000bd.com/contentImg/2022/08/02/225529946.png)
(3)创建一个目录作为nginx的安装目录
mkdir /usr/nginx
(4)进入nginx的解压目录
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YFCi8yQh-1659251766685)(assets/1658997037776.png)]](https://1000bd.com/contentImg/2022/08/02/225530258.png)
(5)设置nginx的安装路径为上面/usr/nginx
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nWTvae0O-1659251766685)(assets/1658997150585.png)]](https://1000bd.com/contentImg/2022/08/02/225530461.png)
(6) 编译–安装
make
make install ---安装
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ewP6FswL-1659251766686)(assets/1658997350070.png)]](https://1000bd.com/contentImg/2022/08/02/225530920.png)
conf: 配置目录
html: 放置静态资源的。
logs: 日志
sbin: 启动和关闭nginx的脚本
(7)启动nginx
![> [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ShzDAIpZ-1659251766686)(assets/1658997698214.png)]](https://1000bd.com/contentImg/2022/08/02/225531078.png)
./nginx 开启nginx
./nginx -s stop 关闭nginx
./nginx -s reload 重新加载配置文件—修改完配置文件后使用该命令
(8) 访问nginx服务器
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OH2oy8dJ-1659251766686)(assets/1658997956192.png)]](https://1000bd.com/contentImg/2022/08/02/225531199.png)
关闭防火墙:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7KqUVq0q-1659251766686)(assets/1658998009291.png)]](https://1000bd.com/contentImg/2022/08/02/225531377.png)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ImvtYJVL-1659251766686)(assets/1658998230927.png)]](https://1000bd.com/contentImg/2022/08/02/225531532.png)

反向代理:
负载均衡:
动静分离:
正向代理: 该服务器代理的为客户端,对于后面真实的服务器来说,不知道访问者的地址。比如:翻墙软件。

反向代理: 该服务器代理的为服务器端,对于客户来说不知道访问的真实服务器。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wJdjUz8L-1659251766687)(assets/1658999690923.png)]
如何使用nginx完成反向代理
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2NE5XC8t-1659251766688)(assets/1658999976527.png)]](https://1000bd.com/contentImg/2022/08/02/225532742.png)
准备一个真实项目和Tomcat服务器 并把项目部署到Tomcat.—springboot项目
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WhuTNXGE-1659251766688)(assets/1659000169405.png)]](https://1000bd.com/contentImg/2022/08/02/225532977.png)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XGtzOJwu-1659251766688)(assets/1659000213832.png)]
启动真实项目
java -jar xxxx.jar
修改nginx配置文件
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hE5bQqkR-1659251766688)(assets/1659000480390.png)]](https://1000bd.com/contentImg/2022/08/02/225533133.png)
重新加载nginx
./nginx -s reload
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kTxypDrV-1659251766688)(assets/1659000636188.png)]](https://1000bd.com/contentImg/2022/08/02/225533385.png)
自己独立完成反向代理
当项目部署到不同的服务器上时



默认负载均衡的策略为轮询策略。
1)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2)、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3)、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
4)、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
5)、url_hash(第三方)
实现对静态资源的统一管理。
静态资源统一放在nginx上。

更改nginx.conf 这个配置文件

对比与单点架构,nginx的高可用架构增加了一台nginx和keepalived机制,也就是每台nginx服务器上都有安装keepalived,而keepalived是遵循VRRP(虚拟路由冗余协议)来通信和工作的,master正常工作时会向其他backup机器(>=1台)不停的广播心跳包,当backup机器收不到master的心跳包时就会重新选举一个master来顶上,当原来的master恢复之后,又会把流量交回给它,以此便可以达到高可用机制。
(1)需要再每个nginx所在的主机上安装keepalived
yum install -y keepalived 安装keepalived
rpm -q -a keepalived 检查是否安装keepalived
**默认在/etc/keepalived目录**

global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.17.129
smtp_connect_timeout 30
# 通过它,可以访问到主机,在hosts文件中,要做映射关系,类似于 127.0.0.1 LVS_DEVEL
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh" # 执行脚本所在的位置
interval 2 #检测脚本执行的间隔,单位秒,每个2秒执行一次脚本
weight 2
}
vrrp_instance VI_1 {
state MASTER # 备份服务器上将 MASTER 改为 BACKUP
interface ens33 # 绑定的网卡
virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1 #每隔一秒发送一次心跳,确保从服务器是否还活着
authentication { # 心跳检测需要的密码
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.17.50 # VRRP H 虚拟地址
}
}
(2)在/usr/local/src 添加检测脚本,检查Nginx是否还活着
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx #Nginx启动命令的位置
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
(3)把两台服务器上 nginx 和 keepalived 启动
启动 nginx: ./nginx 启动 keepalived: systemctl start keepalived.service
可以使用ipconfig,查看虚拟Ip的绑定

5、最终测试

(2)把主服务器上的(192.168.17.129)Nginx 和 keepalived 停止,再输入 192.168.17.50,依旧可以访问Nginx。

