nginx配置中alias和root区别
root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。 alias是一个目录别名的定义(仅能用于location上下文),root则是最上层目录的定义。 直接通过例子来理解: root123location ^~ /123/abc/ { root /data/www;} 当请求http://blog.whsir.com/123/abc/logo.png时,将会返回服务器上的/data/www/123/abc/logo.png文件,即/data/www/123/abc/ alias123location ^~ /123/abc/ { alias /data/www;} 当请求http://blog.whsir.com/123/abc/logo.png时,将会返回服务器上的/data/www/logo.png文件,即/data/www
蓝绿部署,金丝雀发布,(灰度发布),AB测试
转自:https://www.jianshu.com/p/0df88fe4a1e3 随着微服务架构的普及,线上服务越来越多,随之而来的就是部署越来越频繁;随着互联网行业的兴旺,产品迭代的频率也是越来越快,服务上线速度逐步提升。有上线、有部署,就有风险。有风险,就对业务有影响,然后就有了一系列减少这种风险的部署方案:蓝绿部署、金丝雀发布(灰度发布),也有适应产品迭代频率的AB测试。 蓝绿部署蓝绿色部署是一种通过运行两个相同的称为 BLUE 和 GREEN 的生产环境来减少停机时间和降低风险的技术。 蓝绿部署,以颜色命名,简单的理解就是,线上有两套集群环境,在架构图中,一套标记成蓝色,称为蓝色集群BLUE;一套标记为绿色,称为绿色集群GREEN。通过将流量引入两个集群,完成系统升级切换。 步骤一:部署绿色集群,这个时候是初始状态,蓝色集群承担全部责任,接收全部流量,等待被替换。绿色集群刚刚部署,还没有投入使用,流量为0,等待验证和上线。 步骤二:蓝色集群流量不变,向绿色集群引入流量。这个过程可以分成几个阶段完成。第一个阶段,引入少量非实时流量,仅用于数据测试;第二个阶段,引入...
多索引组合查询
多索引组合查询(官方文档) 如果不对某一特殊的索引做限制,就会搜索集群中的所有文档。Elasticsearch 转发搜索请求到每一个主分片或者副本分片,汇集查询出的前10个结果,并且返回给我们。 然而,经常的情况下,你想在一个或多个特殊的索引并且在一个或者多个特殊的类型中进行搜索。我们可以通过在URL中指定特殊的索引和类型达到这种效果,如下所示: /_search 1在所有的索引中搜索所有的类型 /gb/_search 1在 gb 索引中搜索所有的类型 /gb,us/_search 1在 gb 和 us 索引中搜索所有的文档(明确指定多个索引名称,这种方式一般应用在非常精确的查询场景下,便于查询索引范围,性能平衡考虑,若索引不存在会出现错误) /g*,u*/_search 1在任何以 g 或者 u 开头的索引中搜索所有的类型(不限定死索引名称,这种方式一般采用通配符,无需判断该索引是否存在,支持前匹配、后匹配,前后匹配) /gb/user/_search ...
k8sCrd开发学习-client_go连接k8s(minikube)
client go远程连接k8s(minikube)复制配置文件到本地 先将minikube拷贝到本地(或者只拷贝.kube\config需要的文件) 1cp -r /home/docker_user/.minikube /root/ 拷贝.kube文件夹 1cp -r /home/docker_user/.kube /root/ 添加ssh端口转发本地肯定是访问不了的,所以需要在本地试验环境添加远程主机的端口转发。 windows端口转发,打开windows的cmd,输入命令: 12345# 表示在本地启动18443端口,与远程主机root@192.168.56.101建议连接,端口转发到远程主机192.168.49.2:8443上去, 执行完窗口会hold住# 192.168.49.2是k8s节点ip, 使用`minikube node list`查看C:\Users\a94391> ssh -L 18443:192.168.49.2:8443 -N -f docker_user@192.168.56.101docker_user@192.168.56...
利用split分割文件或者二进制文件
前言 当需要将较大的数据上传到服务器,或从服务器下载较大的日志文件时,往往会因为网络或其它原因而导致传输中断而不得不重新传输。这种情况下,可以先将大文件分割成小文件后分批传输,传完后再合并文件。 1. 分割文件文件分割可以使用split命令,该即支持文本文件分割,又支持二进制文件分割;而合并文件可以使用cat命令。 1.1 文本文件分割分割文本文件时,可以按文件大小分割,也可以按文本行数分割。 按文件大小分割 按文件大小分割文件时,需要以-C参数指定分割后的文件大小: 1$ split -C 100M large_file.txt stxt 如上所示,我们将大文件large_file.txt按100M大小进行分割,并指定了分割后文件前缀stxt;当不指定前缀时,split会自动对分割文件进行命名,一般会以x开头。 按行分割 文本文件还可以以行为单位进行分割,以行数进行分割时会忽略文件大小,并以-l参数指定分割后文件的行数: 1$ split -l 1000 large_file.txt stxt 1.2 二进制文件分割二进制文件分割类似于按大小分割文本文件,不同的是以-b参...
整理使用nginx时碰到的问题
NET::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)解决办法:在nginx中的对应的反向代理配置如下内容,即可解决: 1234proxy_buffer_size 1024k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小proxy_buffers 16 1024k; #proxy_buffers缓冲区,网页平均在32k以下的设置proxy_busy_buffers_size 2048k; #高负荷下缓冲大小(proxy_buffers*2)proxy_temp_file_write_size 2048k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传 错误原因分析:1.nginx配置缓存区设置过小2.nginx的临时目录(/proxy_temp)过大或没有权限写入缓存文件3.磁盘空间不足 经过验证是第一种原因(nginx配置缓冲区设置过小) 问:nginx的缓冲区作用是什么? 答:如果客户端到nginx速度快,nginx到服务器速度慢,没有缓冲区,一点点数据量就直接发到客户端,十分浪费性能。有了缓冲区...
生产RabbitMQ队列阻塞处理
现象 RabbitMQ的管控台有几万条消息处于ready状态,还有几百条unacked的消息。 队列阻塞-分析原因 consumer消费处理错误消息失败后没有正常进行ack, 正常的消息也不再被消费, 随即导致队里阻塞 但为什么正常消息也没有被正常消费呢? 其实这是RabbitMQ的一种保护机制。防止当消息激增的时候,海量的消息进入consumer而引发consumer宕机。 RabbitMQ提供了一种QOS(服务质量保证)功能,即在非自动确认的消息的前提下,限制信道上的消费者所能保持的最大未确认的数量。可以通过设置PrefetchCount实现。 举例说明:可以理解为在consumer前面加了一个缓冲容器,容器能容纳最大的消息数量就是PrefetchCount。如果容器没有满RabbitMQ就会将消息投递到容器内,如果满了就不投递了。当consumer对消息进行ack以后就会将此消息移除,从而放入新的消息。 12345678910listener: simple: # 消费端最小并发数 concurrency: 1 # 消费端最大并发数 m...
Kafka-Eagle监控&Kraft模式
Kafka-Eagle监控Kafka-Eagle框架可以监控 Kafka 集群的整体运行情况,在生产环境中经常使用。 在此之前监控工具需要MySQL作为持久化手段。 一、Kafka环境准备1、关闭 Kafka 集群12# 停止集群kf.sh stop 2、修改/opt/module/kafka/bin/kafka-server-start.sh1vim bin/kafka-server-start.sh 修改如下参数值: 123if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"fi 为 12345if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then export KAFKA_HEAP_OPTS="-server -Xms2G -Xmx2G -XX:PermSize=128m -XX...
关于nginx中proxy_set_header Host的设置
转自: https://blog.csdn.net/weixin_41585557/article/details/82426784 背景: nginx上配有aaa.example.com的虚拟主机,现在需要将访问http://aaa.example.com/api/x.x/client/的请求转到http://bbb.example.com/api/x.x/client/,bbb.example.com的虚拟主机在另外一台nginx上,其中x.x表示位数不定的版本号,如:1.0或1.20.345都可能。请求转过去要求url保持不变 用rewrite转发的话,url会发生变化的,那就用proxy_pass吧,于是添加了如下的配置: 123location ~ ^/api/([0-9]+)(\.[0-9]+)*/client/ { proxy_pass http://bbb.example.com;} 在现有环境的nginx里添加这段配置之后,访问却始终转不过去,查看nginx日志也只能看到是404信息,并没有更多定位问题的信息。检查了许久也没找到...
利用pprof分析filebeat的cpu使用率过高
通过pprof调试filebeat因为filebeat是用go语言实现的,而go语言本身的基础库里面就包含pprof这个功能极其强大的性能分析工具,因此,在7.x版本中,beats家族的工具,都提供了以下参数,方便用户在出现问题的时候,对应用进行调试 12345678--cpuprofile FILEWrites CPU profile data to the specified file. This option is useful for troubleshooting Filebeat.-h, --helpShows help for the run command.--httpprof [HOST]:PORTStarts an http server for profiling. This option is useful for troubleshooting and profiling Filebeat.--memprofile FILEWrites memory profile data to the specified output file. This opti...
