解Bug之路-Nginx 502 Bad Gateway
前言 事实证明,读过Linux内核源码确实有很大的好处,尤其在处理问题的时刻。当你看到报错的那一瞬间,就能把现象/原因/以及解决方案一股脑的在脑中闪现。甚至一些边边角角的现象都能很快的反应过来是为何。笔者读过一些Linux TCP协议栈的源...
前言 事实证明,读过Linux内核源码确实有很大的好处,尤其在处理问题的时刻。当你看到报错的那一瞬间,就能把现象/原因/以及解决方案一股脑的在脑中闪现。甚至一些边边角角的现象都能很快的反应过来是为何。笔者读过一些Linux TCP协议栈的源...
Nginx访问日志在处理中文时,默认使用16进制编码处理。使我们对访问日志进行分析处理时,带来很大不便。含有中文字符的请求,日志记录如下: 171.43.238.62 - - [05/Dec/2017:21:40:57 +0800] "GE...
http { upstream backend { server 10.0.0.100:1234; server 10.0.0.101:1234; } server { # ... location / { # ... proxy_pass...
split_clients模块默认已经编译进Nginx , 通过–without-http_split_clients_module 禁用。 功能: 1、基于已有变量创建新变量,可为实现AB测试提供更多的可能性。 2、对已有变量的值执行Mu...
一、知识准备 ● 在nginx优化中有个经常需要设置的参数,tcp_nodelay ● 该参数最核心的功能,就是把小包组成成大包,提高带宽利用率也就是著名的nagle算法 ● tcp协议中,有一个现象:应用层数据可能很低(比如1个字节),而...
在读取数据完成之后,nginx会将读取事件的回调方法设置为ngx_http_process_request_line(),这个方法主要有如下几个作用: 读取客户端请求的数据,如果客户端数据读取不全,则继续监听客户端读事件以读取完整数据; 解...
How To Customize Your Nginx Server Name src/core/nginx.h #define NGINX_VER "MYWS/“ NGINX_VERSION http/ngx_http_special_r...
一、Nginx执行步骤 Nginx处理每一个用户请求时,都是按照若干个不同阶段(phase)依次处理的,而不是根据配置文件上的顺序。 Nginx处理请求的过程一共划分为11个阶段,按照执行顺序依次是post-read、server-rewr...
概述 最近我一直在做动态加载的事情,希望把常用的变更都通过lua动态设置并生效到nginx内核中。 这就包括了根据SNI动态修改tls的版本和加密套件,因为理论上在SSL的client hello后才进行版本的协商,在SNI回调函数修改ss...
概述: 在nginx做一些请求内容过滤的操作。当用户上传一个大文件时,偶然会有上传失败的情况,当关闭内容过滤时问题不再发生。 初步定位是和文件过滤有关系,在测试环境模拟了很多次都无法复现。 问题追踪 在生产环境抓包,上传失败是因为nginx...
限流算法 令牌桶算法 算法思想是: 令牌以固定速率产生,并缓存到令牌桶中; 令牌桶放满时,多余的令牌被丢弃; 请求要消耗等比例的令牌才能被处理; 令牌不够时,请求被缓存。 漏桶算法 算法思想是: 水(请求)从上方倒入水桶,从水桶下方流出(被...
NGINX虽然已经对静态内容做过优化。 但在高流量网站的情况下,仍然可以使用open_file_cache进一步提高性能。 NGINX缓存将最近使用的文件描述符和相关元数据(如修改时间,大小等)存储在缓存中。 缓存不会存储所请求文件的内容。...
请求缓冲区在NGINX请求处理中起着重要作用。 在接收到请求时,NGINX将其写入这些缓冲区。 这些缓冲区中的数据可作为NGINX变量使用,例如$request_body。 如果缓冲区与请求大小相比较小,则数据将写入磁盘上的文件,因此将涉及...
Sendfile 当应用程序传输文件时,内核首先缓冲数据,然后将数据发送到应用程序缓冲区。 应用程序反过来将数据发送到目的地。 Sendfile方法是一种改进的数据传输方法,其中数据在操作系统内核空间内的文件描述符之间复制,而不将数据传输到...
Nginx除了以前常用的HTTP负载均衡外,Nginx增加基于TCP协议实现的负载均衡方法。 HTTP负载均衡,也就是我们通常所有“七层负载均衡”,工作在第七层“应用层”。而TCP负载均衡,就是我们通常所说的“四层负载均衡”,工作在“网络层...
nginx 1.19.0 主线版已发布,更新内容如下: Feature: 使用 OCSP 进行客户端证书验证 Bugfix: 修复与 gRPC 后端搭配使用时,可能出现的”upstream sent frame for clos...
1. Nginx https相关配置 本文主要针对以下两个主要配置从代码层次进行分析: 协议配置: Syntax: ssl_protocols [SSLv2] [SSLv3] [TLSv1] [TLSv1.1] [TLSv1.2] [TLS...
Here is a simple example of how to send well-formatted JSON access logs directly to the Elasticsearch server. It is as s...
运营反馈 Nginx 报 400 错误,具体点说:Request Header Or Cookie Too Large。其实随便搜搜就知道可以通过加大 client_header_buffer_size 和 large_client_hea...
偶然间,我发现 Graphite 显示服务器网卡流量呈锯齿状,于是查了一下 Nginx 日志,发现有人在周期性抓我们的接口数据。我这爆脾气自然不能容忍这种行径。 简单分析一下访问日志,很容易就能拿到了可疑的 IP 段,直接用 ...
有个老项目,通过 Squid 提供文件下载功能,利用 delay_parameters 实现带宽控制,问题是我玩不转 Squid,于是盘算着是不是能在 Nginx 里找到类似的功能。 好消息是 Nginx 提供了 limit_...
前些天帮别人优化PHP程序,搞得灰头土脸,最后黔驴技穷开启了FastCGI Cache,算是勉强应付过去了吧。不过FastCGI Cache不支持分布式缓存,当服务器很多的时候,冗余的浪费将非常严重,此外还有数据一致性问题,所以它只是一个粗...
在nginx基于epoll模型事件驱动流程详解中我们讲到,epoll在触发accept事件之后,会回调ngx_event_accept()方法。这个方法主要做了两件事: 获取accept到的客户端连接句柄,并且初始化一个ng...
点击 https://forum.openresty.us/ 直达 一直以来 OpenResty 开源社区没有官方论坛,社区的讨论分散在邮件列表,github,以及这种 IM 交流群里。为了更好的沉淀社区的讨论,方便搜索引擎检索,也为了方便...
epoll是一种基于事件驱动的模型,其是nginx能够高效处理客户端请求的重要原因之一。从流程上来讲,epoll模型的使用主要分为三步:epoll句柄的创建,监听文件描述符的添加和等待事件的触发,本文将介绍nginx是如何基于这三个步骤实现...
在前面的文章中我们讲解了当一个请求到达时,nginx是如何建立连接并且读取数据的。在读取数据完成之后,nginx会将读取事件的回调方法设置为ngx_http_process_request_line(),这个方法主要有如下几...
1. 请求头读取主流程 在介绍请求头的读取流程之前,我们首先展示一个http请求报文的示例: POST /web/book/read HTTP/1.1 Host: localhost Connection: keep-alive Conte...
nginx Transfer-Encoding: chunked 问题排查 概述 有网站接入nginx以后报浏览器有白页。 我curl的结果返回是 curl: (52) Empty reply from server, 从日志报表也看出什么...
公司有项目前端是用node.js进行服务器渲染,然后再返回给浏览器,进而解决单页面的SEO问题。项目部署的时候,使用Nginx反向代理Node.js。具体的步骤如下: (Nginx、Node.js的安装和基本配置直接跳过) 首先我们要在ng...
最新评论
好
如果不是 跟分区, 可以卸载设备后, 使用 extundelete 尝试恢复下 另外如果单文件被删除,并且 inode 节点未释放, 可以去 /proc/ 下把文件复制出来.
跟SSD硬盘4K对齐差不多呀.