Nginx的这些妙用,你肯定有不知道的

白癜风外用 http://baidianfeng.39.net/a_zczz/150710/4653856.html

Nginx因为它的稳定性、丰富的模块库、灵活的配置和较低的资源消耗而闻名。目前应该是几乎所有项目建设必备。今天通过这篇攻略让你快速通关Nginx。

图片来自PexelsNginx简介

Nginx是一个免费、开源、高性能、轻量级的HTTP和反向代理服务器,也是一个电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强。

Nginx由内核和一系列模块组成,内核提供Web服务的基本功能,如启用网络协议,创建运行环境,接收和分配客户端请求,处理模块之间的交互。

Nginx的各种功能和操作都由模块来实现。Nginx的模块从结构上分为:

核心模块:HTTP模块、EVENT模块和MAIL模块。

基础模块:HTTPAccess模块、HTTPFastCGI模块、HTTPProxy模块和HTTPRewrite模块。

第三方模块:HTTPUpstamRequestHash模块、Notice模块和HTTPAccessKey模块及用户自己开发的模块。

这样的设计使Nginx方便开发和扩展,也正因此才使得Nginx功能如此强大。

Nginx的模块默认编译进Nginx中,如果需要增加或删除模块,需要重新编译Nginx,这一点不如Apache的动态加载模块方便。

如果有需要动态加载模块,可以使用由淘宝网发起的Web服务器Tengine,在Nginx的基础上增加了很多高级特性,完全兼容Nginx,已被国内很多网站采用。

Nginx有很多扩展版本:

开源版nginx.org

商业版NGINXPlus

淘宝网发起的Web服务器Tengine

基于Nginx和Lua的Web平台OpenResty

Nginx作为Web服务器

Web服务器也称为WWW(WorldWideWeb)服务器,主要功能是提供网上信息浏览服务,常常以B/S(Browser/Server)方式提供服务:

应用层使用HTTP协议。

HTML文档格式。

浏览器统一资源定位器(URL)。

Nginx可以作为静态页面的Web服务器,同时还支持CGI协议的动态语言,比如Perl、PHP等,但是不支持Java。Java程序一般都通过与Tomcat配合完成。作为一名Java程序员,肯定要理解下Nginx和Tomcat的区别了。Nginx、Apache和Tomcat:

Nginx:由俄罗斯程序员IgorSysoev所开发的轻量级、高并发HTTP服务器。

ApacheHTTPServerProject:一个Apache基金会下的HTTP服务项目,和Nginx功能类似。

ApacheTomcat:是Apache基金会下的另外一个项目,是一个ApplicationServer。

更准确的说是一个Servlet应用容器,与ApacheHTTPServer和Nginx相比,Tomcat能够动态的生成资源并返回到客户端。

ApacheHTTPServer和Nginx本身不支持生成动态页面,但它们可以通过其他模块来支持(例如通过Shell、PHP、Python脚本程序来动态生成内容)。

一个HTTPServer关心的是HTTP协议层面的传输和访问控制,所以在Apache/Nginx上你可以看到代理、负载均衡等功能。

客户端通过HTTPServer访问服务器上存储的资源(HTML文件、图片文件等等)。通过CGI技术,也可以将处理过的内容通过HTTPServer分发,但是一个HTTPServer始终只是把服务器上的文件如实的通过HTTP协议传输给客户端。而应用服务器,则是一个应用执行的容器。它首先需要支持开发语言的运行(对于Tomcat来说,就是Java),保证应用能够在应用服务器上正常运行。其次,需要支持应用相关的规范,例如类库、安全方面的特性。对于Tomcat来说,就是需要提供JSP/Sevlet运行需要的标准类库、Interface等。为了方便,应用服务器往往也会集成HTTPServer的功能,但是不如专业的HTTPServer那么强大。所以应用服务器往往是运行在HTTPServer的背后,执行应用,将动态的内容转化为静态的内容之后,通过HTTPServer分发到客户端。

正向代理

正向代理:如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。

正向代理“代理”的是客户端。比如你想去Google看个“动作片”,可国内不允许呀,就需要找翻墙代理,这个就是所谓的“正向代理”。

反向代理与负载均衡

反向代理正好与正向代理相反,反向代理是指以代理服务器来接收Internet上的连接请求,然后将请求转发到内部网络上的服务器,并将服务器上得到的结果返回给客户端。此时代理服务器对外表现就是一个服务器,客户端对代理是无感知的。反向代理“代理”的是服务端。再比如,你想本本分分的在“优酷”上看个“爱情片”,youku.


转载请注明:http://www.soiphoto.com/wyfl/wyfl/18248.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了