302是HTTP协议中的一个经常被使用状态码,是多种重定向方式的一种,其语义经常被解释为Moved Temporarily。这里顺带提一下,现实中用到的302多为误用(与303,307混用),在HTTP/1.1中,它的语义为Found. 302有时候很明显,有时候又比较隐蔽。最简单的情况,...
熟悉 CDN 行业主流技术的朋友应该都比较清楚,虽然 Nginx 近几年发展的如日中天,但是基本上没有直接使用它自带的 proxy_cache 模块来做缓存的,原因有很多,例如下面几个: 不支持多盘 不支持裸设备 大文件不会切片 大文件的 Range 请求表现不尽如人意 Ngin...
在功能上,read/write是recv/send的子集。read/wirte是更通用的文件描述符操作,而recv/send在socket领域则更专业一些。 当recv/send的flag参数设置为0时,则和read/write是一样的。+ 如果有如下几种需求,则read/write无法满足,必须使用recv/send: 为接收和...
ngx.var.arg_xx与ngx.req.get_uri_args[xx]两者都是为了获取请求uri中的参数,例如 http://pureage.info?strider=1 为了获取输入参数strider,以下两种方法都可以: local strider = ngx.var.arg_strider local strider = ngx.req.get_uri_args[strider] 差...
首先谈谈遇到的问题: 一个Nginx架在一个后端服务的前面,Nginx proxy_pass到它并开启proxy_cache,假设这个后端服务总是会吐Etag响应头。 在应用中,我们发现当nginx 的proxy_cache成功将后端的页面cache住时,浏览器多次对该页面发起请求,会命中nginx的cache...
关于变量host,在Nginx的官网wiki中是如下说明的: $host:in this order of precedence: host name from the request line, or host name from the Host request header field, or the server name matching a request 直白的翻译一下:host变量的值按照如下...
几个重要的指令类型属性 我们知道,每一个Nginx的模块就是对应一个ngx_module_t类型的结构体,该结构体的commands成员是一个数组,里面包括了该模块的配置指令。每一个commands成员是ngx_command_t类型的结构体,其定义如下: struct ngx_command_s { ngx_str...
lighttpd有一个功能,就是收到SIGHUP信号时会重新打开日志文件。这样在日志切分时很有用。但最近发现了一个bug。 就是如果有子进程挂掉。父进程新fork出的子进程accesslog会默认打日志到最最开始父进程启动时的那个文件里。 看了下代码。原来父进程在收到SIGH...
简介: vnStat是一个Linux下的网络流量监控软件,它记录指定网卡每日的传输流量日志。它并非基于网络包的过滤, 而是分析文件系统- /proc, 所以vnStat无需root的权限就可使用 vnStat 官网: http://humdi.net/vnstat/ linux版本下载:http://humdi.net/vnstat...
我们知道,Linux提供了多种进程间传递消息的方式,比如共享内存、套接字、管道、消息队列、信号等,每种方式都各有特点,各有优缺点。其中Nginx主要使用了其中的三种方式: 套接字(匿名套接字对) 共享内存 信号 本文主要结合代码讲一下前两种方式,匿名套接...