1.Nginx
- 完成了nginx的集群部署,主从部署,以及反向代理
- 反向代理遇到的问题:主要nginx是docker容器中的,而且nginx的数据挂载也和一般的挂载方式不同,这点可以去看Docker官网,需要先将文件复制出来,然后再挂在其他容器。
- 详情连接https://blog.csdn.net/zuodingquan666/article/details/119332705
- 主从部署:为了监控容器的nginx的状态,自己写了一个脚本,遇到的问题:其他的倒好,就是虚拟ip去访问的时候,直接访问172.20.17.20:80端口了,但我两台nginx都是8001(部署在不同的服务器里面),所以在浏览器访问172.20.17.20,直接被拒。
2.Docker
- Docker遇到的第一个问题应该就是docker ps 下面的命令了吧
-
[root@localhost ~]# docker ps --help
Usage: docker ps [OPTIONS]
List containers
Options:
-a, --all Show all containers (default shows just running)
-f, --filter filter Filter output based on conditions provided
--format string Pretty-print containers using a Go template
-n, --last int Show n last created containers (includes all states) (default -1)
-l, --latest Show the latest created container (includes all states)
--no-trunc Don't truncate output
-q, --quiet Only display container IDs
-s, --size Display total file sizes 因为做shell脚本,我要通过容器id来判断存不存在,这里就涉及到了刷选的问题: docker ps -aq --filter "name=nginx10"
-a代表正在运行
-q只显示容器id
--filter “name=xxx” 刷选id等于xxx的 2. 还是第一大点的第2小点的问题,就是nginx配置文件的挂载问题,值得注意
3.Shell
? ? ? ??shell这玩意,本来是不想学的,但是没办法,因为必须要观察nginx的运行状态,唉,就学了吧。
- shell运算式需要 [] 包裹,而且变量引用都需要$x ,但是赋值的时候x=$[$x+1]
- 如何创建死循环 : while [ 1 -eq 1 ]
- 如何退出死循环 break 就好
- 条件表达式里面 没有 else elif else 这种表达式
- else里面没有then
- else需要用fi结尾
把观察nginx运行状态脚本写出来吧:
#!/bin/bash
while [ 1 -eq 1 ]
do
sleep 2
if [ bd375db983c2 == $(docker ps -q --filter "name=nginx10") ]
then
echo "nginx10正在运行"
else
killall keepalived
fi
done
4.?keepalived
这个是配置nginx集群用的,定义的配置文件如下:
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 172.20.17.42
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/root/shell/killkeepalived.sh"
interval 2 #(检测脚本执行的间隔)
weight 2
}
vrrp_instance VI_1 {
state BACKUP # 备份服务器上将 MASTER 改为 BACKUP
interface ens33 //网卡
virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
priority 10 # 主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.20.17.20 // VRRP H 虚拟地址 这个随便
}
}
替换原本的配置文件
[root@localhost conf.d]# cd /etc/keepalived/
[root@localhost keepalived]# ls
keepalived.conf
然后先启动nginx,在启动keepalived
docker start nginx10
systemctl start keepalived.service
5. 配置阿里yum源
因为使用了最小化的Centos安装,所以wget没有,我找了很多,最后完善了一篇博客,用来从0配置yum源
https://blog.csdn.net/zuodingquan666/article/details/119352716
明天任务:
搭建Nacos集群,终于又可以回到我的微服务了
|