nginx后端节点更新不停机
nginx负载均衡后端节点时可以实现后端服务的高可用状态避免单机故障带来的安全隐患但是存在问题的是当批量更新后端会造成业务的短暂不可用,可以增加backup参数来保障更新带来的暂时可用性搭配tengine健康参数(这种方式在业务大量使用期间可能也会存在故障,没有过多的压测和落地)只是简单记录 节点 端口 nginx1(node1) 8888 nginx2(backup) 9999 nginx3 (node2) 7777 nginx4(代理服务) 81 容器模拟环境 运行节点 123[root@00fb4b8e82cf ~]# docker run -itd --name nginx1 -p 8888:80 harbor.od.com/public/nginx:v1.20[root@00fb4b8e82cf ~]# docker run -itd --name nginx2 -p 9999:80 harbor.od.com/public/nginx:v1.20[root@00fb4b8e82cf ~]# docker run -itd --name ng...
nginx复现问题accept4() failed (24: Too many open files)
nginx在近两天连接数上去的时候业务有影响,错误日志频繁出现accept4() failed (24: Too many open files)报错信息,后续业务低峰自动恢复,以3种方式复现测试会报错的原因记录如下 请求模拟:使用nginx反向代理一个java后端请求工具:使用ab命令(yum install httpd-tools -y)下载 1[root@ceshi-132 ~]# ab -r -c 20000 -n 2000000 http://10.1.133.92/osbinfo > osb.log -n 请求数-c 并发数-r 不在接手错误是退出ab命令并发最大在2w,可以提升,我这里没有做处理2w足够复现了 当使用ab命令请求是如果终端报错,临时将宿主机ulimit调大(ulimit -n 65535)是因为宿主机每个进程可以同时打开的最大文件句柄数默认在1024,压测是比实际请求更大量的请求,ab命令严格来说不是很严谨 12[root@ceshi-132 ~]# ab -r -c 20000 -n 20000000 http://10.1.133.92/o...
Nginx后端超时504重复请求
在一次业务中客户端请求osb平台再经过nginx转发后端,开发反馈请求次数大于1导致问题,经排查客户端请求一次,osb平台设置超时为30s,nginx配置等待上游服务器响应时最多等待30秒 部分配置文件1234567891011upstream xx { server 10.6.6.1:8080 weight=1; server 10.6.6.2:8080 weight=1; server 10.6.6.45:8080 weight=1; } location / { root html; proxy_pass http://xx; proxy_set_header X-Forwarded-For $remote_addr; proxy_read_timeout 30; } 123456# access.log日志10.6.6.35|18/Jun/2024:10:35:4...
nginx代理参数proxy_pass
proxy_pass参数用于配置反向代理,指定客户端请求被转发到后端服务器,后端地址可以是域名、ip端口URI 代理后端报错提示本地找不到CSS文件、JavaScript文件或图片例如:nginx :10.1.74.109后端服务:http://10.1.74.109:8082 参数配置: 123location /harbor { proxy_pass http://10.1.74.109:8082; } 访问http://10.1.74.109/zabbix 显示不全,提示文件css等静态文件不存在。 原因在于proxy_pass确实指向后端服务器,但浏览器加载页面时,可能会请求一些静态资源,但是这些请求可能不包含/zabbix前缀,也可能静态资源是动态生成的,因此才会去本地去查找这些文件 例如以上后端登录前访问得地址为http://10.1.74.109:8082/,登录成功后得地址为http://10.1.74.109:8082/zabbix.php?action=dashboard.view,没有包含/zabbix前...
Nginx + Keepalived 实现高可用负载均衡集群
Nginx + Keepalived 高可用负载均衡集群实现Nginx 作为高性能的反向代理服务器,结合 Keepalived 实现 VIP(虚拟 IP)漂移,可以构建高可用的负载均衡集群。以下是具体实现方法: 环境准备 两台以上服务器安装 Nginx 和 Keepalived 统一的虚拟 IP(VIP),例如 10.96.4.32 所有节点配置相同的 Nginx 负载均衡规则 Nginx 负载均衡配置在每台 Nginx 服务器上配置相同的 upstream 规则,指向后端应用服务器: 1234567891011121314http { upstream backend { server 192.168.1.101:8080; server 192.168.1.102:8080; server 192.168.1.103:8080; } server { listen 80; location / { proxy_p...
docker配置文件daemon.json
基本参数配置12345678910111213{ "graph": "/data/docker", "storage-driver": "overlay2", "insecure-registries": ["harbor.od.com"], "registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"], "bip": "172.7.2.1/24", "exec-opts": ["native.cgroupdriver=systemd"], "live-restore": true }重读配置文件[root@ceshi-132 ~]# sysmtectl daemon-reload[root@cesh...
docker部署全链路监控pinpoint
docker-compose方式部署官网传送门: pinpoint-docker个人传送门: 增加volume持久化 123[root@ceshi-132 docker-commpose]# git clone git@gitee.com:liujiangxu/docker-commpose.git[root@ceshi-132 docker-commpose]# cd pinpoint/docker-pinpoint/[root@ceshi-132 docker-pinpoint]# docker-compose pull && docker-compose up -d 访问方式http://$ip:8080即可 agent配置与采集web页面给出了agent安装地址,直接下载上传被采集端即可 1234567[root@zabbix ~]# tar -xf pinpoint-agent-2.3.3.tar.gz [root@zabbix ~]# mv pinpoint-agent-2.3.3 /usr/local/pinpoint-age...
docker配置容器日志大小
容器运行后容器日志会一直存储,时间久后会出现日志文件过大,从而导致查询日志困难,容器日志一般会在docker持久化目录containers下对应不同镜像名称以 *-json.log形式 查询方式123[root@zabbix ~]# docker inspect zbx-server | grep log "LogPath": "/docker-compose/docker/containers/5e29aeaa4c9bdd2e9122bd4e827696 c7faedb000c363b90cb16f0d443dedd0f9/5e29aeaa4c9bdd2e9122bd4e827696c7faedb000c363b90cb16f0d443dedd0f9-json.log", 服务的日志记录配置 参数 解释 json-file 日志存储格式为json, 默认的logdriver驱动 syslog 日志写入到指定的syslog地址 local 日志以自定义格式存储 none 丢弃容器输出 局...
根据宿主机PID获取docker运行实例
当宿主机的容器化方式部署更多的时候按照之前linux查看进程的命令基本很难获取到想要的信息,只能看到ps后的结果,长时间后我都不知道哪里出现这么多nginx的进程,能确定是容器部署的,但是不知道那些容器出现了这么多进程 根据相同的用户找到属于nginx master的主进程在根据ps获取详细信息1[root@zabbix gitlab]# ps -fe |grep nginx 详细信息,出现container ID1[root@zabbix gitlab]# ps -e -o pid,cmd,comm,cgroup |grep 3506 查看属于那个容器12[root@zabbix gitlab]# docker ps -a |grep d3a59938fe5[root@zabbix gitlab]# docker ps -a |grep d3a59938fe5 |awk '{print $NF}'
docker各目录含义
目录 含义 builder 构建docker镜像的工具或过程 buildkit 用于构建和打包容器镜像,官方构建引擎,支持多阶段构建、缓存管理、并行化构建和多平台构建等功能 containerd 负责容器生命周期管理,能起、停、重启,确保容器运行。负责镜管理,提供一致的运行环境 containers docker容器,当前运行的所有容器都会显示到此目录 image 在docker中,image是一个只读的文件系统,可被看作一个模板,用于创建容器实例 network docker网络提供一种简单、可扩展方式来组织管理容器。可为网络提供网络隔离、服务发现和负载均衡等 overlay2 存储驱动,用于实现容器与主机之间文件系统层的隔离。允许多个容器共享相同的基础文件系统镜像,又能保证每个容器保持独立的文件系统更改。df命令可以列举容器运行中所需文件和目录。所谓的联合挂载 plugins docker插件,用于扩展docker runtimes docker默认使用runc作为容器运行时 swarm docker集群管理工具,用于将多个do...














