`
kavy
  • 浏览: 872955 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

nginx简介

 
阅读更多

ginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。

编辑本段简介

Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用nginx网站用户有:新浪、网易、 腾讯,另外知名的微网志Plurk也使用nginx。[1]

编辑本段优点

nginx map

  nginx map

Nginx 可以在大多数 Unix like OS 上编译运行,并有 Windows 移植版。目前 Nginx 的1.0.9稳定版已经于2011年11月1日发布,开发版本已完成的为1.3.0,如果新建站点,建议使用最新稳定版作为生产版本,已有站点升级急迫性不高。Nginx 的源代码使用 2-clause BSD-like license。  Nginx 是一个很牛的高性能Web和反向代理服务器,它具有很多非常优越的特性:  在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。  Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。  作为邮件代理服务器:Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last. fm 描述了成功并且美妙的使用经验。  Nginx 是一个安装非常的简单,配置文件非常简洁(还能够支持perl语法),Bugs非常少的服务器:Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。

编辑本段功能

支持的操作系统  FreeBSD 3.x,4.x,5.x,6.x i386; FreeBSD 5.x,6.x amd64;  Linux 2.2,2.4,2.6 i386; Linux 2.6 amd64;  Solaris 8 i386; Solaris 9 i386 and sun4u; Solaris 10 i386;  MacOS X (10.4) PPC;  Windows XP和Windows Server 2003中。  结构与扩展  一个主进程和多个工作进程。工作进程是单线程的,且不需要特殊授权即可运行;  kqueue (FreeBSD 4.1+),epoll (Linux 2.6+),rt signals (Linux 2.2.19+),/dev/poll (Solaris 7 11/99+),select,以及 poll 支持;  kqueue支持的不同功能包括 EV_CLEAR,EV_DISABLE (临时禁止事件), NOTE_LOWAT,EV_EOF,有效数据的数目,错误代码;  sendfile (FreeBSD 3.1+),sendfile (Linux 2.2+),sendfile64 (Linux 2.4.21+),和 sendfilev (Solaris 8 7/01+) 支持;  输入过滤 (FreeBSD 4.1+) 以及 TCP_DEFER_ACCEPT (Linux 2.4+) 支持;  10,000 非活动的 HTTP keep-alive 连接仅需要 2.5M 内存。  最小化的数据拷贝操作;  其他HTTP功能:  基于IP 和名称的虚拟主机服务;  Memcached 的 GET 接口;  支持 keep-alive 和管道连接;  灵活简单的配置;  重新配置和在线升级而无须中断客户的工作进程;  可定制的访问日志,日志写入缓存,以及快捷的日志回卷;  4xx-5xx 错误代码重定向;  基于 PCRE 的 rewrite 重写模块;  基于客户端IP 地址和 HTTP 基本认证的访问控制;  PUT,DELETE,和 MKCOL 方法;  支持 FLV (Flash 视频);  带宽限制;  实验特性  内嵌的 perl  通过 aio_read()/aio_write() 的套接字工作的实验模块,仅在 FreeBSD 下。  对线程的实验化支持,FreeBSD 4.x 的实现基于 rfork()  Nginx 主要的英语站点是 http://sysoev. ru/en/  英语文档草稿由 Aleksandar Lazic 完成 点击。  HTTP基础功能  处理静态文件,索引文件以及自动索引;  反向代理加速(无缓存),简单的负载均衡和容错;  FastCGI,简单的负载均衡和容错;  模块化的结构。过滤器包括gzipping,byte ranges,chunked responses,以及 SSI-filter。在SSI过滤器中,到同一个 proxy 或者 FastCGI 的多个子请求并发处理;  SSL 和 TLS SNI 支持;  IMAP/POP3 代理服务功能:  使用外部 HTTP 认证服务器重定向用户到 IMAP/POP3 后端;  使用外部 HTTP 认证服务器认证用户后连接重定向到内部的 SMTP 后端;  其他HTTP功能  基于名称和基于IP的虚拟服务器;  Keep-alive and pipelined connections support;保持活动和支持管线连接;  Flexible configuration;灵活的配置;  Reconfiguration and online upgrade without interruption of the client processing;重载配置,无间断程序升级;  Access log formats,bufferred log writing,and quick log rotation;访问日志格式,bufferred日志写,快速登录旋转;  3xx-5xx error codes redirection; 3xx的- 5xx错误代码重定向;  The rewrite module;重写模块;  Access control based on client IP address and HTTP Basic authentication;基于客户端IP地址访问控制和HTTP基本认证;  The PUT,DELETE,MKCOL,COPY and MOVE methods; 提交,删除,MKCOL,复制和移动方法;  FLV streaming;FLV视频流;  Speed limitation;速度限制;  Limitation of simultaneous connections or requests from one address.限制同个IP地址请求数量。  Embedded perl.嵌入式的Perl。  邮件代理服务器功能  用户重定向到IMAP/POP3后端使用外部HTTP认证服务器;  User authentication using an external HTTP authentication server and connection redirection to internal SMTP backend;用户身份验证使用外部HTTP认证服务器和连接重定向到内部的SMTP后端;  Authentication methods:验证方法:  POP3: USER/PASS,APOP,AUTH LOGIN/PLAIN/CRAM-MD5;的POP3:用户名/密码,的APOP,AUTH的LOGIN/PLAIN/CRAM-MD5;  IMAP: LOGIN,AUTH LOGIN/PLAIN/CRAM-MD5; IMAP的:登录,AUTH的LOGIN/PLAIN/CRAM-MD5;  SMTP: AUTH LOGIN/PLAIN/CRAM-MD5;的SMTP:AUTH的LOGIN/PLAIN/CRAM-MD5;  SSL support; SSL支持;  STARTTLS and STLS support. STARTTLS的和补充的支持。  认证方法  POP3: POP3 USER/PASS,APOP,AUTH LOGIN PLAIN CRAM-MD5;  IMAP: IMAP LOGIN;  SMTP: AUTH LOGIN PLAIN CRAM-MD5;  SSL 支持;  在 IMAP 和 POP3 模式下的 STARTTLS 和 STLS 支持;

编辑本段安装

模块依赖性  gzip 模块需要 zlib 库  rewrite 模块需要 pcre 库  ssl 功能需要 openssl 库  预先编译好的安装包  Nginx在一些Linux发行版和BSD的各个变种版本的安装包仓库中都会有,通过各个系统自带的软件包管理方法即可安装。需要注意的是,很多预先编译好的安装包都比较陈旧,大多数情况下还是推荐直接从源码编译。  官方源代码下载  特定平台的安装和记录  Nginx 在 Slackware 上的编译安装脚本  Nginx 在ubuntu和debian上的安装及脚本,debian针对nginx包的官方下载站点  使用源代码进行构建  Nginx 使用 Unix 下常用的 './configure && make && make install' 过程来编译安装。  configure 脚本确定系统所具有一些特性,特别是 nginx 用来处理连接的方法。然后,它创建 Makefile 文件。  configure 支持下面的选项:  --prefix=<path> - Nginx安装路径。如果没有指定,默认为 /usr/local/nginx。  --sbin-path=<path> - Nginx可执行文件安装路径。只能安装时指定,如果没有指定,默认为<prefix>/sbin/nginx。  --conf-path=<path> - 在没有给定-c选项下默认的nginx.conf的路径。如果没有指定,默认为<prefix>/conf/nginx.conf。  --pid-path=<path> - 在nginx.conf中没有指定pid指令的情况下,默认的nginx.pid的路径。如果没有指定,默认为 <prefix>/logs/nginx.pid。  --lock-path=<path> - nginx.lock文件的路径。  --error-log-path=<path> - 在nginx.conf中没有指定error_log指令的情况下,默认的错误日志的路径。如果没有指定,默认为 <prefix>/logs/error.log。  --http-log-path=<path> - 在nginx.conf中没有指定access_log指令的情况下,默认的访问日志的路径。如果没有指定,默认为 <prefix>/logs/access.log。  --user=<user> - 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的用户。如果没有指定,默认为 nobody。  --group=<group> - 在nginx.conf中没有指定user指令的情况下,默认的nginx使用的组。如果没有指定,默认为 nobody。  --builddir=DIR - 指定编译的目录  --with-rtsig_module - 启用 rtsig 模块  --with-select_module --without-select_module - Whether or not to enable the select module. This module is enabled by default if a more suitable method such as kqueue,epoll,rtsig or /dev/poll is not discovered by configure.  //允许或不允许开启SELECT模式,如果 configure 没有找到更合适的模式,比如:kqueue(sun os),epoll (linux kenel 2.6+),rtsig(实时信号)或者/dev/poll(一种类似select的模式,底层实现与SELECT基本相 同,都是采用轮训方法) SELECT模式将是默认安装模式  --with-poll_module --without-poll_module - Whether or not to enable the poll module. This module is enabled by default if a more suitable method such as kqueue,epoll,rtsig or /dev/poll is not discovered by configure.  --with-http_ssl_module - Enable ngx_http_ssl_module. Enables SSL support and the ability to handle HTTPS requests. Requires OpenSSL. On Debian,this is libssl-dev.  //开启HTTP SSL模块,使NGINX可以支持HTTPS请求。这个模块需要已经安装了OPENSSL,在DEBIAN上是libssl  --with-http_realip_module - 启用 ngx_http_realip_module  --with-http_addition_module - 启用 ngx_http_addition_module  --with-http_sub_module - 启用 ngx_http_sub_module  --with-http_dav_module - 启用 ngx_http_dav_module  --with-http_flv_module - 启用 ngx_http_flv_module  --with-http_stub_status_module - 启用 "server status" 页  --without-http_charset_module - 禁用 ngx_http_charset_module  --without-http_gzip_module - 禁用 ngx_http_gzip_module. 如果启用,需要 zlib。  --without-http_ssi_module - 禁用 ngx_http_ssi_module  --without-http_userid_module - 禁用 ngx_http_userid_module  --without-http_access_module - 禁用 ngx_http_access_module  --without-http_auth_basic_module - 禁用 ngx_http_auth_basic_module  --without-http_autoindex_module - 禁用 ngx_http_autoindex_module  --without-http_geo_module - 禁用 ngx_http_geo_module  --without-http_map_module - 禁用 ngx_http_map_module  --without-http_referer_module - 禁用 ngx_http_referer_module  --without-http_rewrite_module - 禁用 ngx_http_rewrite_module. 如果启用需要 PCRE。  --without-http_proxy_module - 禁用 ngx_http_proxy_module  --without-http_fastcgi_module - 禁用 ngx_http_fastcgi_module  --without-http_memcached_module - 禁用 ngx_http_memcached_module  --without-http_limit_zone_module - 禁用 ngx_http_limit_zone_module  --without-http_empty_gif_module - 禁用 ngx_http_empty_gif_module  --without-http_browser_module - 禁用 ngx_http_browser_module  --without-http_upstream_ip_hash_module - 禁用 ngx_http_upstream_ip_hash_module  --with-http_perl_module - 启用 ngx_http_perl_module  --with-perl_modules_path=PATH - 指定 perl 模块的路径  --with-perl=PATH - 指定 perl 执行文件的路径  --http-log-path=PATH - Set path to the http access log  --http-client-body-temp-path=PATH - Set path to the http client request body temporary files  --http-proxy-temp-path=PATH - Set path to the http proxy temporary files  --http-fastcgi-temp-path=PATH - Set path to the http fastcgi temporary files  --without-http - 禁用 HTTP server  --with-mail - 启用 IMAP4/POP3/SMTP 代理模块  --with-mail_ssl_module - 启用 ngx_mail_ssl_module  --with-cc=PATH - 指定 C 编译器的路径  --with-cpp=PATH - 指定 C 预处理器的路径  --with-cc-opt=OPTIONS - Additional parameters which will be added to the variable CFLAGS. With the use of the system library PCRE in FreeBSD,it is necessary to indicate --with-cc-opt="-I /usr/local/include". If we are using select() and it is necessary to increase the number of file descriptors,then this also can be assigned here: --with-cc-opt="-D FD_SETSIZE=2048".  --with-ld-opt=OPTIONS - Additional parameters passed to the linker. With the use of the system library PCRE in FreeBSD,it is necessary to indicate --with-ld-opt="-L /usr/local/lib".  --with-cpu-opt=CPU - 为特定的 CPU 编译,有效的值包括:pentium,pentiumpro,pentium3,pentium4,athlon,opteron,amd64,sparc32,sparc64,ppc64  --without-pcre - 禁止 PCRE 库的使用。同时也会禁止 HTTP rewrite 模块。在 "location" 配置指令中的正则表达式也需要 PCRE。  --with-pcre=DIR - 指定 PCRE 库的源代码的路径。  --with-pcre-opt=OPTIONS - Set additional options for PCRE building.  --with-md5=DIR - Set path to md5 library sources.  --with-md5-opt=OPTIONS - Set additional options for md5 building.  --with-md5-asm - Use md5 assembler sources.  --with-sha1=DIR - Set path to sha1 library sources.  --with-sha1-opt=OPTIONS - Set additional options for sha1 building.  --with-sha1-asm - Use sha1 assembler sources.  --with-zlib=DIR - Set path to zlib library sources.  --with-zlib-opt=OPTIONS - Set additional options for zlib building.  --with-zlib-asm=CPU - Use zlib assembler sources optimized for specified CPU,valid values are: pentium,pentiumpro  --with-openssl=DIR - Set path to OpenSSL library sources  --with-openssl-opt=OPTIONS - Set additional options for OpenSSL building  --with-debug - 启用调试日志  --add-module=PATH - Add in a third-party module found in directory PATH  在不同版本间,选项可能会有些许变化,请总是使用 ./configure --help 命令来检查一下当前的选项列表。

编辑本段使用技巧

对于chroot的支持是否在计划之中  在什么情况下使用Nginx比使用squid要好? 反之亦然。  大体上来说nginx主要用于反向加速代理而不是像squid那样做为常规代理服务器。Nginx的最大优势在于高负载情况下内存和CPU的低消耗。我不认为squid能给你带来比nginx更好的性能。  有没有人能给出一个完整的.conf配置文件来详细的解读一下怎么配置和测试 IMAP 模块, 而不只是关于 IMAP 的只言片语啊?  依照 [NginxImapProxyExample] 开始你的配置. 关于不同配置参数的具体信息,请查看 [NginxMailCoreModule] 页。  示例1: 用运行于apache上的php脚本做后端验证  示例2: 使用运行于同一个服务器的 nginx-embedded-perl 模块作为 imap/pop代理和认证后端  某些东东不工作  (URL重写,代理,路径,...)  例如:如URL重写(rewrite)不工作了或者是unix的路径(/$PATH)的问题云云...  请仔细阅读 [NginxDebugging] 并且 逐行 查看错误日志。  如果你没找到错误 打起精神 试着到IRC或邮件列表里说明一下你碰到的问题。  有没有其它类似的Web服务器  Cherokee  Lighttpd (Lighty)  thttpd  关于各自的优缺点请使用自己喜欢的搜索引擎查找  让Nginx成为以postfix做为后端的SMTP代理  Nginx使用什么算法来实现负载均衡 它能实现基于连接数的负载均衡吗?  目前Nginx使用简单的轮巡算法,所以无法做基本链接计数的负载均衡。这个可能会在将来的版本中有所改变。  我能关闭从代理服务器到后端服务器的缓存吗或者使用上传进度特性?  基于太多人询问下面的问题:  我能为了得到上传进度而关闭代理的缓存吗  使用nginx我怎么才能给用户显示上传进度  到目前为止 (2007-Apr-26) 还没有办法关闭到后端服务器的缓存.
分享到:
评论

相关推荐

    Nginx简介

    **Nginx简介** Nginx是一款高性能、轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,由伊戈尔·赛索耶夫(Igor Sysoev)开发。它以其高效稳定、低内存占用、支持高并发连接和动态内容处理而...

    视频直播系统 2018第二章 流媒体nginx简介

    视频直播系统 2018第二章 流媒体nginx简介

    测试那点事-nginx简介

    Nginx 是由Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了。Igor 将源代码以类BSD许可证的形式发布。自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集、 ...

    Nginx简介及相关案例.pdf

    Nginx(发音为“engine-x”)是一款高性能的开源Web服务器和反向代理服务器。它由Igor Sysoev在2004年首次发布,旨在解决C10K问题(即同时处理上万个并发连接),并提供更高的性能和稳定性。 Nginx的设计理念是轻量...

    Nginx简介_动力节点Java学院整理

    Nginx是一个跨平台的Web服务器,可运行在Linux、FreeBSD、Solaris、AIX、Mac OS、Windows等操作系统上,并且它还可以使用当前操作系统特有的一些高效API来提高自己的性能

    实战nginx.pdf

    主要内容包括:第1章 Nginx简介;第2章Nginx服务器安装与配置;第3章Nginx基本配置与优化;第4章Nginx与PHP;第5章Nginx与JSP、ASP.NET..第6章Nginx http负载均衡和反向代理;第7章Nginx 的rewrite规则与实例;第8章...

    Nginx全套学习指南

    第1章 Nginx简介 第2章 Nginx服务器的安装与配置 第3章 Nginx的基本配置与优化 第4章 Nginx与PHP(FastCGI)的安装、配置与优化 第5章 Nginx与JSP、ASP.NET、Perl的安装与配置 第6章 Nginx HTTP负载均衡和反向代理的...

    Nginx服务器的安装与配置.pdf

    第1章 Nginx简介.pdf 第2章 Nginx服务器的安装与配置.pdf 第3章 Nginx的基本配置与优化.pdf 第4章 Nginx与PHP(FastCGI)的安装、配置与优化.pdf 第5章 Nginx与JSP、ASP.NET、Perl的安装与配置.pdf 第6章 Nginx HTTP...

    实战Nginx:取代Apache的高性能Web服务器 第一章

    第1章 Nginx简介 1.1 常用的Web服务器简介 1.2 Nginx简介 1.3 选择Nginx的理由 1.4 Nginx与Apache、Lighttpd的综合对比 第2章 Nginx服务器的安装与配置 2.1 安装Nginx服务器所需要的系统资源 2.2 Nginx的下载 2.3 ...

    nginx-rtmp模块源码包nginx-rtmp-module-master

    **一、Nginx 简介** Nginx 是一款高性能的 HTTP 和反向代理服务器,以其轻量级、高并发处理能力而闻名。它被广泛应用于 Web 服务器和负载均衡解决方案中。Nginx 通过事件驱动的非阻塞 I/O 模型,能够在处理大量并发...

    集成了nginx-http-flv-module 1.2.7模块的64位nginx程序

    **Nginx简介** Nginx是由Igor Sysoev开发的一款高性能的HTTP和反向代理服务器,同时也是邮件协议代理服务器。它以其事件驱动的架构和非阻塞I/O模型而著名,能够在高并发环境下保持出色的性能。Nginx广泛应用于网站...

    nginx-1.10.2

    **Nginx简介** Nginx 是一款高性能的 Web 和反向代理服务器,它以其高效、稳定、轻量级的特点,在互联网行业中广泛应用。Nginx 由 Igor Sysoev 创建,最初是为了解决传统 Web 服务器在高并发场景下的性能问题。其...

    反向代理服务器 Nginx

    1.1Nginx 简介 Nginx (engine x) 是一个轻量级的、高性能的、基于 Http 的、反向代理服务器,静态 web 服务器。 Nginx 最初是由俄罗斯人 Igor Sysoev(伊戈尔·赛索耶夫)使用 C 语言为俄罗斯访问量第 二的 Rambler....

    nginx-配置指南 2018

    第1章 Nginx简介 第2章 Nginx服务器的安装与配置 第3章 Nginx的基本配置与优化 第4章 Nginx与PHP(FastCGI)的安装、配置与优化 第5章 Nginx与JSP、ASP.NET、Perl的安装与配置 第6章 Nginx HTTP负载均衡和反向代理的...

    实战nginx-张宴

    第1章 Nginx简介 1.1 常用的Web服务器简介 1.2 Nginx的发展 1.3 选择Nginx的理由 1.4 Nginx与Apache、 Lighttpd的综合对比 第2章 Nginx服务器的安装与配置 2.1 安装Nginx服务器所需要的系统资源 2.2 Nginx的下载 2.3...

    nginx(windows版本)

    **Nginx简介** Nginx是一款高性能的HTTP和反向代理服务器,广泛应用于Web服务领域,尤其在处理高并发连接和静态文件服务方面表现出色。Nginx以其轻量级、稳定性和低内存消耗而著称,适用于各种规模的企业级应用。 ...

    nginx搭建配置详细说明

    1. Nginx简介 1.1. 什么是nginx 1.2. Nginx的优点 1.3. 哪里使用到nginx 1.4. Nginx和Apache的区别 2. 安装Nginx服务器 2.1. 在windows上安装 2.2. 在Linux上安装 2.2.1. 写在前面 2.2.2. 准备使用yum安装...

    实战Nginx.取代Apache的高性能Web服务器

    第1章 Nginx简介 1.1 常用的Web服务器简介 1.2 Nginx简介 1.3 选择Nginx的理由 1.4 Nginx与Apache、Lighttpd的综合对比 第2章 Nginx服务器的安装与配置 2.1 安装Nginx服务器所需要的系统资源 2.2 Nginx的下载...

Global site tag (gtag.js) - Google Analytics