IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 2021-08-03 -> 正文阅读

[系统运维]2021-08-03

1.Nginx

  1. 完成了nginx的集群部署,主从部署,以及反向代理
  2. 反向代理遇到的问题:主要nginx是docker容器中的,而且nginx的数据挂载也和一般的挂载方式不同,这点可以去看Docker官网,需要先将文件复制出来,然后再挂在其他容器。
    1. 详情连接https://blog.csdn.net/zuodingquan666/article/details/119332705
  3. 主从部署:为了监控容器的nginx的状态,自己写了一个脚本,遇到的问题:其他的倒好,就是虚拟ip去访问的时候,直接访问172.20.17.20:80端口了,但我两台nginx都是8001(部署在不同的服务器里面),所以在浏览器访问172.20.17.20,直接被拒。

2.Docker

  1. Docker遇到的第一个问题应该就是docker ps 下面的命令了吧
  2. [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的运行状态,唉,就学了吧。

  1. shell运算式需要 [] 包裹,而且变量引用都需要$x ,但是赋值的时候x=$[$x+1]
  2. 如何创建死循环 : while [ 1 -eq 1 ]
  3. 如何退出死循环 break 就好
  4. 条件表达式里面 没有 else elif else 这种表达式
  5. else里面没有then
  6. 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集群,终于又可以回到我的微服务了

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-04 11:37:16  更:2021-08-04 11:38:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:23:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码