随笔分类 -  Nginx

摘要:在服务器的日常维护过程中,会经常用到下面的命令: netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 它会显示例如下面的信息: TIME_WAIT 814 CLOSE_WAIT 1 FIN_WAIT1 1 ESTA 阅读全文
posted @ 2020-01-01 18:23 gao88
摘要:最近线上出现请求调用502的问题,A服务调用B服务偶然抛502错误,出现的频率也比较低。排查问题发现是请求的TIME_WAIT状态过多造成的。 什么是TIME_WAIT? tcp关闭连接 TIME_WAIT: TCP关闭连接中请求的发起方收到了接收方的FIN报文,并发送出了ACK报文,这时进入TIM 阅读全文
posted @ 2020-01-01 18:15 gao88
摘要:问题描述环境是SLB+2台ECS实例,在ECS实例上跑的是的LNMP服务,在某一天下午三点中app包加载数据很慢,平时可能一两秒就能加载完成js,css等样式 解决方法1、找到加载慢的域名和URL访问后端数据库,看获取数据情况,访问数据正常。 2、查看操作系统CPU、内存、负载、网络情况查看CPU命 阅读全文
posted @ 2020-01-01 17:05 gao88
摘要:在高并发的场景下,Nginx若配置不当,可能会报[crit]failed (24: Too many open files)的类似错误。这个错误的意思是指单个进程打开的文件句柄数已经达到了上限,无法再打开更多的文件句柄了。 我们先不管为什么一个进程会去打开那么多文件句柄,只说如何去解决这个问题。 按 阅读全文
posted @ 2019-12-26 18:19 gao88
摘要:最近项目遇到一个奇怪的问题,使用Nginx代理访问应用时,运行一段时间后会报Too many open files 问题。 搜索了一些资料,大家都建议增加系统最大能打开的文件数: lsof -p 16920| wc –l 查看某个进程打开的文件数 16920 为进程ID ulimit –a 查看当前 阅读全文
posted @ 2019-12-26 18:06 gao88
摘要:我的实战课程(Nginx的服务优化篇中),同学得提出的问题,如下: 关于Nginx的worker_connections到底是什么?如果设置过小会有什么影响,下面我用一个场景演示下: 首先,我的场景如下: 然后,说下Nginx下的配置 1、nginx.conf worker_processes 1; 阅读全文
posted @ 2019-12-26 16:57 gao88
摘要:最近遇到 grpc 客户端报错 rpc error: code = Unavailable desc = transport is closing,原因是连接长时间没有使用,被服务端断开,这种情况通过简单粗暴的重试策略可以解决,更加优雅的解决方案是增加保持连接策略 服务端 客户端 链接 服务端代码: 阅读全文
posted @ 2019-12-09 14:49 gao88
摘要:问题描述 公司内部容器平台,接入层用nginx做LB,用户有grpc协议需求,所以在lb层支持grcp反向代理,nginx从1.13开始支持grpc反向代理,将公司使用的nginx包从1.12升级到1.14.0后,增加grpc反向代理配置。配置完成后,打压力测试时,发现接入层机器端口占满而导致服务异 阅读全文
posted @ 2019-12-09 14:41 gao88
摘要:gRPC有4种接口类型: Unary RPC (一元RPC) Server Streaming RPC ( 服务器流式RPC) Client Streaming RPC ( 客户端流式RPC) Bidirectional Streaming RPC (双向流式RPC) 对于底层的HTTP/2而言,这 阅读全文
posted @ 2019-12-09 14:40 gao88
摘要:https://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive_requests https://www.cnblogs.com/mylovelulu/p/10011288.html https://www.cnblogs 阅读全文
posted @ 2019-12-09 14:26 gao88
摘要:一、nginx之tcp_nopush、tcp_nodelay、sendfile 1、TCP_NODELAY你怎么可以强制 socket 在它的缓冲区里发送数据?一个解决方案是 TCP 堆栈的 TCP_NODELAY选项。这样就可以使缓冲区中的数据立即发送出去。 Nginx的 TCP_NODELAY 阅读全文
posted @ 2019-12-09 11:02 gao88
摘要:I'm running some high volume gRPC requests through nginx and see a lot of this error: 'there is no connection available' and 'the connection is draini 阅读全文
posted @ 2019-12-08 18:32 gao88
摘要:使用apt安装nginx时,默认是Ubuntu自带的源,版本并不是最新的。 可以使用Ubuntu社区爱好者维护源,地址:https://launchpad.net/~nginx/+archive/ubuntu/stable。 安装方法很简单: 然后安装nginx即可: 阅读全文
posted @ 2019-12-08 18:01 gao88
摘要:前言: 我们知道nginx在1.13版本之后就可以支持grpc的负载均衡了。官方给出的使用也很简单,类似proxy_pass的语法。但在使用的过程中遇到短连接的问题。 该文章后续仍在不断的更新修改中, 请移步到原文地址 http://xiaorui.cc/?p=5970 大量的timewait短连接 阅读全文
posted @ 2019-12-06 11:22 gao88
摘要:一·什么是websocket WebSocket协议相比较于HTTP协议成功握手后可以多次进行通讯,直到连接被关闭。但是WebSocket中的握手和HTTP中的握手兼容,它使用HTTP中的Upgrade协议头将连接从HTTP升级到WebSocket。这使得WebSocket程序可以更容易的使用现已存 阅读全文
posted @ 2019-11-13 09:50 gao88
摘要:Nginx负载均衡选项upstream用法举例 1、轮询(weight=1) 默认选项,当weight不指定时,各服务器weight相同,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 upstream bakend {server 192.168.1.10;s 阅读全文
posted @ 2019-11-13 09:48 gao88
摘要:FROM daocloud.io/php:7.2-fpm-alpine LABEL maintainer="lestat@lestat.me" # 修改镜像源 RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/re 阅读全文
posted @ 2019-03-05 20:39 gao88
摘要:关于let's encrypt和acme.sh的简介 Let’s Encrypt is a free, automated, and open Certificate Authority. acme.sh 实现了 acme 协议, 可以从 let‘s encrypt 生成免费的证书. 安装,使用ac 阅读全文
posted @ 2019-03-02 11:29 gao88
摘要:说明 tengine官方说明文档 nginx 对于后端RS的检查机制不完善所有用Tengine进行反向代理12 一、反向代理 1.定义后端real-server(在http段) upstream static_server { server 192.168.17.175:80 weight=5; s 阅读全文
posted @ 2018-11-30 22:51 gao88