Nginx 学习笔记(一)简介

  1. Nginx是一款免费开源的高性能http服务器及反向代理服务器产品,同时,它还可以提供IMPA/POP3代理服务等功能
  2. 官网 http://www.nginx.org
  3. 介绍 http://wiki.nginx.org/Main
  4. 源码获取 http://trac.nginx.org/nginx/browser
  5. 版本变更说明 http://nginx.org/en/CHANGES
  6. 7.0.69 开始支持Windows版本 性能和广泛度没有Linux 高
  7. 版本分为开发版本(用于Nginx软件项目的研发) 稳定版本 (用于Web服务器投入商业应用)过期版本
  8. 能够快速相应静态页面(HTML)的请求; 支持FastCGI、SSL、Virtual Host、URL Rewrite、HTTP Basic Auth、Gzip等大量使用功能;并且支持更多的第三方功能模块的扩展
  9. 提供的基本功能服务大体分为基础HTTP服务、高级HTTP服务和邮件服务三大类。Nginx提供基本HTTP服务,可以作为HTTP代理服务器和反向代理服务器,支持通过缓存加速访问,可以完成简单的负载均衡和容错,支持包过滤功能,支持SSL等。Nginx提供高级HTTP服务,可以进行自定义配置,支持虚拟主机,支持URL重定向,支持网络监控,支持流媒体传输等。Nginx作为邮件代理服务器是最早开发这个产品的目的之一,它支持IMAP/POP3代理服务功能,支持内部SMTP代理服务功能。
  10. 基本HTTP服务中 主要包含以下功能特性: 处理静态文件(如HTML静态网页及请求);处理索引文件以及支持自动索引。 打开并自行管理文件描述符缓存。 提供反向代理服务,并且可以使用缓存加速反向代理,同时完成简单负载均衡及容错。 提供远程FastCGI服务的缓存机制,加速访问,同时完成简单的负载均衡及容错。 使用Nginx的模块化特性过滤器功能。Nginx基本过滤器包括gzip压缩、ranges支持、chunked响应、XSLT、SSI以及图像缩放等。其中,针对包含多个SSI的页面,经由FastCGI或反向代理,SSI过滤器可以并行处理。 支持HTTP下的安全套接层安全协议SSL。
  11. 高级HTTP服务 主要包含以下功能特性:支持基于名字和IP的虚拟主机设置。支持HTTP/1.0种的KEEP-ALive模式和管线(PipeLined)模型连接。支持重新加载配置以及在线升级时,无须中断正在处理的请求。自定义访问日志格式、带缓存的日志写操作以及快速日志轮转。提供3XX~5XX错误代码重定向功能。支持重写(Rewrite)模块扩展。支持HTTP DAV模块,从而为Http WebDAV提供PUT、DELETE、MKCOL、COPY以及MOVE方法。支持FLV流和MP4流传输。支持网络监控,包括基于客户端IP地址和HTTP基本认证机制的访问控制、速度限制、来自同一地址的同时连接数或请求数限制等。 支持嵌入Perl语言。
  12. 邮件代理服务 支持使用外部HTTP认证服务器重定向用户到IMAP/POP3后端,并支持IMAP认证方式(LOGIN、AUTH LOGNIN/PLAIN/CRAM-MD5) 和POP3认证方式(USER/PASS、APOP、AUTH LOGIN/PLAIN/CRAM-MD5)。 支持使用外部HTTP认证服务器认证用户后重定向连接到内部SMTP后端,并支持SMTP认证方式(AUTH LOGIN/PLAIN/CRAM-MD5)。支持邮件代理服务下的安全套接层安全协议SSL。支持纯文本通信协议的扩展协议STARTTLS。
  13. 负载均衡两重含义 一方面是提高网络系统处理能力 减轻服务器负担 另一方面 将用户流量进行分流处理 增加处理效率 减少用户等待时间
  14. 负载均衡策略分为两大类:内置策略和扩展策略。内置策略主要包括轮询、加权轮训、和IPhash三种;扩展策略主要通过第三方模块来实现,种类丰富,常见有url hash 、fair等。内置会被自动编译到nginx内核,扩展需要手动编译。IPHash可以是用户session 在指定的服务器中 避免在多个节点共享问题 urlhash 如果后端有缓存服务器可以提高效率但是如果后端节点出现异常 他不能自动排除该节点,后端节点出现异常会导致返回503错误。fair分配给请求量最少的机器通过响应时间来判断。
  15. Squid 在web服务器领域是一款相当流行的开源代理服务器和Web缓存服务器。可以缓存前端请求,万维网、域名系统或者其他网络搜索等,为一个集体提供网络资源共享服务。
  16. Nginx 0.7.48版本开始也支持了和Squid类似的缓存功能。Nginx服务器的Web缓存缓存只要由Proxy_Cache相关指令集和FastCGI_Cache相关指令集构成。其中,Proxy_Cache主要用于在Nginx服务器提供反向代理服务时,对后端源服务器的返回内容进行URL缓存;FastCGI_Cache主要用于对FastCGI的动态程序进行缓存。另外还有一款常用的第三方模块ngx_cache_purge也是Nginx服务器Web缓存功能中经常用到的。它主要用于清除Nginx服务器上指定的URL缓存。0.8.32 版本后可以实现Squid的全部缓存和清除指定URL缓存功能,nginx多核调度更略胜一筹 反向代理负载均衡也不逊色于squid 基本可以取代squid。

阅读书籍:Nginx高性能Web服务器详解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章