没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
Nginx 应用技术指南总结 V1.5 Freeke 整理于 2008-12-12
Nginx 应用技术指南
【前言】: .................................................................................................................................................................... 3
一、Nginx 基础知识 .................................................................................................................................................... 3
1、 简介 ............................................................................................................................................................ 3
2、Nginx的优点 .................................................................................................................................................... 3
3、 FastCGI,简单的负载均衡和容错. ....................................................................................................... 3
4、 模块化的结构。......................................................................................................................................... 3
5、 支持 SSL 和 TLS SNI. .......................................................................................................................... 3
二、 Nginx 安装配置 .................................................................................................................................................. 4
1、安装 pcre........................................................................................................................................................... 4
2、Nginx 编译安装............................................................................................................................................... 4
3、Nginx 配置文件测试:................................................................................................................................... 4
4、Nginx 启动:................................................................................................................................................... 4
5、Nginx 配置文件修改重新加载:................................................................................................................... 4
三、Nginx 编译优化 .................................................................................................................................................... 4
1、 GCC 参数: .............................................................................................................................................. 4
2、 修改Nginx的header伪装服务器 ................................................................................................................ 5
3、 Tcmalloc 优化Nginx 性能........................................................................................................................ 6
4、 减小编译后文件大小:............................................................................................................................. 7
四、Nginx 根据URL 分发........................................................................................................................................ 7
1、第一种方法:................................................................................................................................................... 7
2、第二种方法:................................................................................................................................................... 8
五、Nginx Rewrite........................................................................................................................................................ 8
1.Nginx Rewrite 基本标记(flags).......................................................................................................................... 8
2. 正则表达式匹配,............................................................................................................................................ 8
3. 文件及目录匹配,............................................................................................................................................ 9
4.Nginx 的一些可用的全局变量,可用做条件判断:...................................................................................... 9
六、Nginx Redirect..................................................................................................................................................... 10
七、Nginx 目录自动加斜线:..................................................................................................................................... 10
八、Nginx 防盗链 ...................................................................................................................................................... 10
九、Nginx expires....................................................................................................................................................... 11
1、根据文件类型 expires .................................................................................................................................... 11
2、根据判断某个目录......................................................................................................................................... 11
十、Nginx 访问控制 .................................................................................................................................................. 11
1、Nginx 身份证验证......................................................................................................................................... 11
2、Nginx 禁止访问某类型的文件..................................................................................................................... 12
3、使用 ngx_http_access_module 限制 ip 访问 ................................................................................................. 12
4、Nginx 下载限制并发和速率......................................................................................................................... 12
5、大文件上传限制............................................................................................................................................. 13
6、Nginx 实现Apache一样目录列表 ................................................................................................................ 13
7、 http_accesskey_module 模块应用:........................................................................................................... 13
十一、Nginx Location................................................................................................................................................ 14
1. 基本语法: ................................................................................................................................................. 15
asdfasdfasdfas
Nginx 应用技术指南总结 V1.5 Freeke 整理于 2008-12-12
十二、Nginx 日志处理 .............................................................................................................................................. 15
1、Nginx 日志切割............................................................................................................................................. 15
2、 Nginx logrotate 处理: ........................................................................................................................... 15
3、 Nginx and Cronolog.................................................................................................................................. 16
4、 Nginx 如何不记录部分日志................................................................................................................... 17
十三、Nginx Cache服务配置..................................................................................................................................... 17
十四、Nginx 负载均衡 .............................................................................................................................................. 17
1. Nginx 基础知识........................................................................................................................................... 17
2. Nginx 负载均衡实例 1................................................................................................................................ 18
8、 Nginx 负载均衡实例............................................................................................................................... 18
十五、Nginx 原理代码分析: .................................................................................................................................. 20
1、剖析Nginx等单线程服务器设计原理与性能优势....................................................................................... 20
2、Nginx等web 服务器设计中关于相关注意事项与心得 .............................................................................. 21
3、向上取倍数,Nginx实现内存对齐的宏....................................................................................................... 22
4、Nginx的内存池管理分析(a) .......................................................................................................................... 24
5、Nginx的内存池管理分析(b).......................................................................................................................... 25
6、Nginx 数据结构 数组,列表....................................................................................................................... 29
7、Nginx源代码分析........................................................................................................................................... 30
8、Nginx代码分析之(一)——初探............................................................................................................... 32
9、Nginx代码分析之(二)——Empty Gif是如何工作的.............................................................................. 33
10、Nginx 连接处理........................................................................................................................................... 37
11、 ...................................................................................................................................................................... 38
12、 ...................................................................................................................................... 错误!未定义书签。
十六、问题总结 FAQ ................................................................................................................................................. 38
1、 反向代理至后端 apache 网站无法输验证码..........................................................................................38
2、 利用 Nginx url hash 提高squid服务器命中率 ...................................................................................... 38
3、 Nginx实践 使用memcached模块加速PHP应用程序 ............................................................................ 39
4、 Nginx上的Memcached应用改进 ............................................................................................................. 41
5、 Nignx 配合 Memcached 提升 400%性能................................................................................................ 42
6、 Nginx出现的 413 Request Entity Too Large错误.................................................................................... 42
7、 解决 504 Gateway Time-out..................................................................................................................... 42
8、 Nginx 502 Bad Gateway错误 ................................................................................................................... 43
1)、第一种方法: ............................................................................................................................................... 43
2)、第二种方法: ....................................................................................................................................... 43
9、 400 bad request 错误的原因和解决办法 ................................................................................................ 43
10、 Nginx Awstats 日志分析 ..................................................................................................................... 44
11、 Nginx Upload 上传模块...................................................................................................................... 44
12、 Nginx SSL 配置:............................................................................................................................ 45
1)、编译: ................................................................................................................................................... 45
2)、配置: .................................................................................................................................................. 46
13、 ...................................................................................................................................................................... 46
十七、参考资料 .......................................................................................................................................................... 46
Nginx 应用技术指南总结 V1.5 Freeke 整理于 2008-12-12
【前言】:
编写此技术指南在于推广普及 NGINX 在国内的使用,更方便的帮助大家了解和掌握 NGINX 的一些使用
技巧。本指南很多技巧来自于网络在此对网络上愿意分享的朋友们表示感谢和致意!欢迎大家和我一起丰富
本技术指南并提出更好的建议!
一、Nginx 基础知识
1、 简介
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服
务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过
两年半了。Igor 将源代码以类BSD许可证的形式发布。尽管还是测试版,但是,Nginx 已经因为它的稳定性、
丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。更多的请见官方wiki:
http://wiki.codemongers.com/NginxChs
2、Nginx 的优点
Nginx 做为 HTTP 服务器,有以下几项基本特性:
1.处理静态文件,索引文件以及自动索引;打开文件描述符缓冲.
2.无缓存的反向代理加速,简单的负载均衡和容错.
3、 FastCGI,简单的负载均衡和容错.
4、 模块化的结构。
包括 gzipping, byte ranges, chunked responses, 以及 SSI-filter 等 filter。如果由 FastCGI 或其它代理服务器
处理单页中存在的多个 SSI,则这项处理可以并行运行,而不需要相互等待。
5、 支持 SSL 和 TLS SNI.
Nginx 专为性能优化而开发,性能是其最重要的考量, 实现上非常注重效率 。它支持内核 Poll 模型,能经受
高负载的考验, 有报告表明能支持高达 50,000 个并发连接数。
Nginx 具有很高的稳定性。其它 HTTP 服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可
能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当前 apache 一旦上到 200 个以
上进程,web 响应速度就明显非常缓慢了。而 Nginx 采取了分阶段资源分配技术,使得它的 CPU 与内存占
用率非常低。Nginx 官方表示保持 10,000 个没有活动的连接,它只占 2.5M 内存,所以类似 DOS 这样的攻击
对 Nginx 来说基本上是毫无用处的。就稳定性而言, Nginx 比 lighthttpd 更胜一筹。
Nginx 支持热部署。它的启动特别容易, 并且几乎可以做到 7*24 不间断运行,即使运行数个月也不需要重新
启动。你还能够在不间断服务的情况下,对软件版本进行进行升级。
Nginx 采用 master-slave 模型, 能够充分利用 SMP 的优势,且能够减少工作进程在磁盘 I/O 的阻塞延迟。当
采用 select()/poll()调用时,还可以限制每个进程的连接数。
Nginx 代码质量非常高,代码很规范, 手法成熟, 模块扩展也很容易。特别值得一提的是强大的 Upstream
与 Filter 链。 Upstream 为诸如 reverse proxy,与其他服务器通信模块的编写奠定了很好的基础。而 Filter 链最
酷的部分就是各个 filter 不必等待前一个 filter 执行完毕。它可以把前一个 filter 的输出做为当前 filter 的输入,
这有点像 Unix 的管线。这意味着,一个模块可以开始压缩从后端服务器发送过来的请求,且可以在模块接
Nginx 应用技术指南总结 V1.5 Freeke 整理于 2008-12-12
收完后端服务器的整个请求之前把压缩流转向客户端。
Nginx 采用了一些 os 提供的最新特性如对 sendfile (Linux 2.2+) , accept-filter (FreeBSD 4.1+) ,
TCP_DEFER_ACCEPT (Linux 2.4+) 的支持,从而大大提高了性能。
二、 Nginx 安装配置
1、安装 pcre
./configure
make && make install
cd ../
2、Nginx 编译安装
./configure --user=www --group=www --prefix=/usr/local/Nginx/ --with-http_stub_status_module
--with-openssl=/usr/local/openssl
make && make install
更详细的模块定制与安装请参照官方 wiki.
3、Nginx 配置文件测试:
[root@Chinarenservice ~]# /usr/local/nginx/sbin/nginx -t
2008/12/16 09:08:35 [info] 28412#0: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
2008/12/16 09:08:35 [info] 28412#0: the configuration file /usr/local/nginx/conf/nginx.conf was tested successfully
4、Nginx 启动:
[root@Chinarenservice ~]# /usr/local/nginx/sbin/nginx
5、Nginx 配置文件修改重新加载:
[root@Chinarenservice ~]# kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
三、Nginx 编译优化
1、 GCC 参数:
Nginx 应用技术指南总结 V1.5 Freeke 整理于 2008-12-12
默认 Nginx 使用的 GCC 编译参数是-O,需要更加优化可以使用以下两个参数
–with-cc-opt=’-O3′ \
–with-cpu-opt=opteron \
使得编译针对特定 CPU 以及增加 GCC 的优化,针对优化后的结果.我们进行测试结果表明使用-O2 以及以上
的参数,可以微量增加性能 1%左右,而 O2 和 O3 基本可以认为是相同的:
./http_load -parallel 100 -seconds 10 urls
10811 fetches, 100 max parallel, 5.23252e+06 bytes, in 10 seconds
a、默认参数 -O
1087.2 fetches/sec, 526204 bytes/sec
msecs/connect: 45.5374 mean, 63.984 max, 1.008 min
msecs/first-response: 45.7679 mean, 64.201 max, 2.216 min
1088.9 fetches/sec, 527027 bytes/sec
msecs/connect: 45.0159 mean, 65.291 max, 0.562 min
msecs/first-response: 46.1236 mean, 67.397 max, 9.169 min
1102.2 fetches/sec, 533465 bytes/sec
msecs/connect: 44.5593 mean, 67.649 max, 0.547 min
msecs/first-response: 45.499 mean, 67.849 max, 2.495 min
B、优化编译后 -O2
1081.1 fetches/sec, 523252 bytes/sec
msecs/connect: 45.7144 mean, 63.324 max, 0.823 min
msecs/first-response: 46.1008 mean, 61.814 max, 4.487 min
1110.2 fetches/sec, 537337 bytes/sec
msecs/connect: 43.4943 mean, 60.066 max, 0.715 min
msecs/first-response: 45.756 mean, 62.076 max, 3.536 min
1107 fetches/sec, 535788 bytes/sec
msecs/connect: 44.872 mean, 3036.51 max, 0.609 min
msecs/first-response: 44.8625 mean, 59.831 max, 3.178 min
C、优化编译后 -O3
1097.5 fetches/sec, 531189 bytes/sec
msecs/connect: 45.1355 mean, 3040.24 max, 0.583 min
msecs/first-response: 45.3036 mean, 68.371 max, 4.416 min
1111.6 fetches/sec, 538014 bytes/sec
msecs/connect: 44.2514 mean, 64.831 max, 0.662 min
msecs/first-response: 44.8366 mean, 69.904 max, 3.928 min
1099.4 fetches/sec, 532109 bytes/sec
msecs/connect: 44.7226 mean, 61.445 max, 0.596 min
msecs/first-response: 45.4883 mean, 287.113 max, 3.336 min
2、 修改 Nginx 的 header 伪装服务器
# cd Nginx-0.6.31
# vi src/core/Nginx.h
#ifndef _NGINX_H_INCLUDED_
剩余45页未读,继续阅读
elevenma
- 粉丝: 10
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0