现在位置 >首页 > Nginx
使用ngx_memc和ngx_srcache模块构建高效透明的缓存机制已关闭评论
2012年02月19日 Nginx ⁄ 被围观 33,644 次+
为了提高性能,几乎所有互联网应用都有缓存机制,其中Memcache是使用非常广泛的一个分布式缓存系统。众所周知,LAMP是非常经典的Web架构方式,但是随着Nginx的成熟,越来越多的系统开始转型为LNMP(Linux+Nginx+MySQL+PHP with fpm),这是因为Nginx采用基于事件机制的I/O多路复用思想设计,在高并发情况下其性能远远优于默认采用prefork模式的Apache,另外,相对于Apache,Nginx更轻量,同时拥有大量优秀的扩展模块,使得在Nginx上可以实现一些美妙的功能。 传统上,PHP中使用memcache的方法是使用php-memcache或...
阅读全文

1℃
2011年12月31日 Nginx ⁄ 被围观 17,586 次+
借助 nginx proxy 模块我们可以给 ngx_lua 很方便地实现非阻塞 HTTP 客户端功能,即使用一个被 proxy 模块处理的内部 location 作为 HTTP client stub,然后通过 ngx_lua 中的 location.capture 接口调用它访问外部 URL。当然为了能解析外部域名,还需要指定 nginx 的 resolver 地址以开启 proxy 模块的域名解析功能。 下面就是一个简单的网页编码转换网关的 nginx 配置(需要事先安装 lua-iconv模块): Nginx 配置代码 http    {        ...        # 指定域名解析服务器地址        resolver 127.0.0.1;     ...
阅读全文
当ngx_cache_purge遇到大小写 [原创]已关闭评论
2011年11月24日 Nginx ⁄ 被围观 12,342 次+
最近配置另外一套刚做的系统时遇到了些问题?采用nginx_cache缓存,使用ngx_cache_purge来清除缓存。由于之前的cms系统url全部是小写字母或数字,所以就没有这样的问题,现在的问题是url包含大小写字母,不管用户输入的是大小写字母都可以访问到指定内容,由于ngx_cache缓存是$host$uri$is_args$args做key进行md5后生成的缓存文件名,这样一来大写小写会各缓存一次,而清除缓存的时候是根据读取页面中的链接来清除缓存的,就会遇到某些缓存是清除不掉的。下面举几个例子。比如: 访问地址:http://www.dyx.com/go/...
阅读全文
Nginx做下载时.ipa或.apk文件的处理方法已关闭评论
2011年11月10日 Nginx ⁄ 被围观 29,717 次+
Nginx提供下载时.ipa或.apk文件的处理方法 最近app图鉴上线后,添加了不少android和iphone的应用下载,但发现了一个问题:在使用Nginx提供下载.ipa或.apk文件时会出现以下问题:通过IE浏览器下载会出现替换扩展名为.zip;而使用火狐浏览器下载则会出现流的形式,就是不会下载,而是以乱码的形式浏览,显然这都不是我们想要的。 下面我们先来了解下 nginx下conf/mime.types内各类型文件头信息: text/vnd.sun.j2me.app-descriptor      jad;    application/java-archive              jar war ear;    applicati...
阅读全文
强大的nginx反向代理异步传输模式(原理)已关闭评论
2011年11月08日 Nginx ⁄ 被围观 27,628 次+
sudone.com在nginx的反向代理介绍中,提到了异步传输模式并提到它可以减少后端连接数和压力,这是为何?下面就来讲解下传统的代理(apache/squid)的同步传输和nginx的异步传输的差异。 看图:                   squid同步传输:浏览器发起请求,而后请求会立刻被转到后台,于是在浏览器和后台之间就建立了一个通道。在请求发起直到请求完成,这条通道都是一直存在的。 nginx异步传输:浏览器发起请求,请求不会立刻转到后台,而是将请求数据(header)先收到ngin...
阅读全文
2℃
2011年09月23日 Nginx ⁄ 被围观 16,855 次+
1.隐藏php版本号 隐藏方法:vim php.ini添加如下代码 expose_php = Off   2.隐藏nginx版本号 隐藏方法:vim nginx.conf 在http里加入 sever_tokens= Off   3.隐藏apache版本号 隐藏方法:vim httpd.ini 添加如下代码 ServerTokens = ProductOnly    ServerSignature = Off   修改每个配置文件都要重启服务才可以生效。 伪装apache 编辑ap_release.h文件,修改“#define AP_SERVER_BASEPRODUCT \"Apache\"”为“#define AP_SERVER_BASEPRODUCT \"Microsoft-IIS/5.0\"”。 编辑os/unix/os.h文件,修改“#defi...
阅读全文
nginx rewrite问号处理已关闭评论
2011年09月02日 Nginx ⁄ 被围观 15,139 次+
今天配置一个nginx的rewrite,简直是被搞死了。其实我就是想把/xxx/0.mp4?key=123456abcde转换为/xxx.mp4?segno=0&key=123456abcde这种形式经过不断的尝试,也分析了一下原因,发现niginx的内容设置中必须注意的一些问题: 1.nginx在进行rewrite的正则表达式中只会将url中?前面的部分拿出来匹配 2.匹配完成后,?后面的内容将自动追加到url中(包含?),如果不让后面的内容追加上去,请在最后加上?即可 3.如果想要?后面的内容时请使用$query_string 在这里提醒一点,调试的时候在rewrite的最后一个配置项中不要...
阅读全文
怎样区别nginx中rewrite时break和last已关闭评论
2011年09月02日 Nginx ⁄ 被围观 24,240 次+
怎样区别nginx中rewrite时break和last 在使用nginx配置rewrite中经常会遇到有的地方用last并不能工作,换成break就可以,其中的原理是对于根目录的理解有所区别,按我的测试结果大致是这样的。 location /    {         proxy_pass http://test;         alias /home/html/;         root /home/html;         rewrite "^/a/(.*)\.html$" /1.html last;     }   在location / { 配置里: 1、使用root指定源:使用last和break都可以 2、使用proxy_pass指定源:使用last和break都可以 3、使用alias指定源:必须...
阅读全文
1℃
2011年08月26日 Nginx ⁄ 被围观 20,613 次+
PHP,nginx配置和潜在执行任意代码,我以前的博客文章发布后,我遇到了一个单独的空字节注入漏洞nginx的旧版本(0.5.*,0.6.*,0.7,0.8<=0.7.65<=0.8.37)。通过利用此漏洞,攻击者可以导致服务器使用PHP的FastCGI作为PHP的服务器上执行任何公开访问的文件。 在nginx的含漏洞的版本中,空字节URI中默认允许的(他们的存在是通过命名zero_in_uri在ngx_http_request.h定义一个变量)。单个模块有能力选择退出处理空字节的URI。然而,并非所有这些,特别不FastCGI模块。 这次攻击事件本身很简单:恶意用户发出...
阅读全文
nginx使用rewrite配置多语言页面 [原创]已关闭评论
2011年08月16日 Nginx ⁄ 被围观 15,889 次+
当我们打开很多网站时,可能大家会发现,它会根据你使用的语言自动判断并跳转到不同的语言界面。例如:Google 也就是你用不同的语言,那么输入Google首页就可以自动转向你使用的语言。在这个网络普及的时代,外贸的主要途径一定是网络。也许你的企业网站既有中文版本,同时也有英文版本(如果你的公司有外贸业务)。那么他们的网站是怎样实现这个功能呢?下面我们来研究下Web服务器的Header,HTTP_ACCEPT_LANGUAGE是服务器所接收的语言,一般来说是服务器的语言。在网站可以看到,firefox在安装多个语言包的时候,...
阅读全文