Nginx配置与应用详解

9 年 ago jony Nginx配置与应用详解已关闭评论
2016-12-14 马哥教育 马哥Linux运维
前言
Nginx是由俄罗斯软件工程师Igor Sysoev开发的一个高性能的HTTP和反向代理服务器,具备IMAP/POP3和SMTP服务器功能。Nginx最大的特点是对高并发的支持和高效的负载均衡,在高并发的需求场景下,是Apache服务器不错的替代品。目前,包括新浪、腾讯等知名网站都已使用Nginx作为Web应用服务器。本文带来的是Nginx配置与应用详解。
基础特性
基本功能静态资源的web服务器,能缓存打开的文件描述符

反向代理服务器,缓存、负载均衡

支持FastCGI

模块化,非DSO机制,过滤器gzip,SSI和图像大小调整等

支持SSL

扩展功能

基于名称和IP做虚拟主机

支持keepalive

支持平滑配置更新或程序版本升级

定制访问日志,支持使用日志缓存以提高性能

支持url rewrite

支持路径别名

支持基于IP及用户的认证

支持速率限制,并发限制等

基本架构

一个master, 生成一个或多个worker

事件驱动:kqueue, epoll, /dev/poll

消息通知:select, poll, rt signals

支持sendfile, sendfile64

文件AIO

支持mmap

模块类别

核心模块

标准http模块

可选的http模块

邮件模块

第三方扩展模块

基本配置

虚拟主机

虚拟主机基本配置完成,当然虚拟主机里也可以有很多参数的,下文会提及到访问控制

基于用户

认证文件由htpasswd命令创建
访问测试
基于IP
重启服务后访问测试
压缩功能 GZIP
nginx将响应报文发送至客户端之前可以启用压缩功能,这能够有效地节约带宽,并提高响应至客户端的速度。通常编译nginx默认会附带gzip压缩的功能,因此,可以直接启用之。

未压缩访问测试
重启服务,压缩后测试
压缩成功
防盗链
(1) 定义合规的引用
(2) 拒绝不合规的引用
访问测试
反向代理
Nginx通过proxy模块实现反向代理功能。在作为web反向代理服务器时,nginx负责接收客户请求,并能够根据URI、客户端参数或其它的处理逻辑将用户请求调度至上游服务器上(upstream server)。nginx在实现反向代理功能时的最重要指令为proxy_pass,它能够将location定义的某URI代理至指定的上游服务器(组)上。如下面的示例中,location的/uri将被替换为上游服务器上的/newuri。

缓存  cache
nginx做为反向代理时,能够将来自上游服务器的响应缓存至本地,并在后续的客户端请求同样内容时直接从本地构造响应报文。

缓存前请求时间
缓存后请求时间
此时缓存目录应该有缓存文件生成
负载均衡
nginx可利用自身的upstream模块实现,upstream模块的负载均衡算法主要有三种,轮调(round-robin)、ip哈希(ip_hash)和最少连接(least_conn)三种。
如此便可实现简单的负载均衡功能
The end
好了,有关nginx的基础配置及应用就先说到这里了,第一次接触nginx,写的比较乱,敬请谅解。来源:http://www.178linux.com/5320

http://mp.weixin.qq.com/s?__biz=MzA3OTgyMDcwNg==&mid=2650626827&idx=2&sn=c40f50ffb9a89abcda651797ba6feeba&chksm=87a459c6b0d3d0d05e2446271543b33e84dd7d97fd55b51caa0bd9fe2b2f9580e57534b847ab&mpshare=1&scene=5&srcid=1222hIXNFGW8bJphdEgzS7Rm#rd