当前位置:首页 > 技术文章 > 正文内容

给小白的 Nginx 10分钟入门指南

arlanguage4个月前 (01-16)技术文章26



前言


今天主要对Nginx Web服务软件进行介绍,作为HTTP服务软件的后起之秀,Nginx与它的老大哥Apache相比有很多改进之处,比如,在性能上,Nginx占用的系统资源更少,能支持更多的并发连接(特别是静态小文件场景下),达到更高的访问效率;在功能上,Nginx不但是一个优秀的Web服务软件,还可以作为反向代理负载均衡及缓存服务使用;在安装配置上,Nginx更为方便,简单,灵活,可以说,Nginx是一个极具发展潜力的Web服务软件。


Nginx是什么?


  • nginx是一个开源的,支持高性能,高并发的www服务和代理服务软件。
  • nginx因具有高并发(特别是静态资源),占用系统资源少等特性,且功能丰富而逐渐流行起来。
  • nginx不但是一个优秀Web服务软件,还具有反向代理负载均衡功能和缓存服务功能,与lvs负载均衡及Haproxy等专业代理软件相比,Nginx部署起来更为简单,方便;在缓存功能方面,它又类似于Squid等专业的缓存服务软件。

Nginx的重要特性


  • 支持高并发:能支持几万并发连接(特别是静态小文件业务环境)
  • 资源消耗少:在3万并发连接下,开启10G Nginx线程消耗的内存不到200MB
  • 可以做HTTP反向代理及加速缓存,即负载均衡功能,内置对RS节点服务器健康检查功能,这相当于专业的Haproxy软件或LVS的功能
  • 具备Squid等专业缓存软件等的缓存功能
  • 支持异步网络I/O事件模型epoll(linux2.6+)

Nginx主要企业功能应用


(1)作为Web服务软件

Nginx是一个支持高性能,高并发的Web服务软件,它具有很多优秀的特性。作为Web服务器,与Apache相比,Nginx能够支持更多的并发连接访问,但占用的资源更少,效率更高,在功能上也强大了很多,几乎不逊色于Apache。

(2)反向代理或负载均衡服务

在反向代理或负载均衡服务方面,Nginx可以作为Web服务、PHP等动态服务及Memcached缓存的代理服务器,它具有类似专业反向代理软件(如Haproxy)的功能,同时也是一个优秀的邮件代理服务软件,但是Nginx的代理功能还是相对简单了些,特别是不支持TCP的代理(Nginx1.9.0版本已经开始支持TCP代理了)

(3)前端业务数据缓存服务

在Web缓存服务方面,Nginx可通过自身的proxy_cache模块实现类Squid等专业缓存软件的功能。


综上:Nginx的这三大功能(Web服务,反向代理或负载均衡服务,前端业务数据缓存服务)是国内使用Nginx的主要场景,特别是前两个。


Web 服务产品性能对比测试

从下图中可以看出处理静态小文件(小于1MB时),Nginx和Lighttpd比Apache更有优势,Nginx处理小文件的优势明显,Lighttpd综合最强。

下图是各类Web服务器在动态数据性能上的对比,从图中可以看出,在处理动态数据时,三者的差距不大,Apache更有优势一点。这是因为处理动态数据的能力取决于PHP(java)和后端数据库的服务能力,也就是说瓶颈不在Web服务器上。一般情况下普通PHP引擎支持的并发连接参考值为300~1000,Java引擎和数据库的并发连接参考值为300~1500.业务场景及网站架构不同,并发连接数也会有上下浮动。


为什么Nginx总体性能比Apache高?

  • Nginx使用新的epoll(Linux2.6内核)和kqueue(freebsd)异步网络I/O模型,而Apache使用的是传统的select模型。目前Linux下能够承受高并发访问的Squid、Memcached软件采用的都是epoll模型。
  • 处理大量连接的读写时,Apache所采用的select网络I/O模型比较低效。

如何正确选择Web服务器

虽然国内很多人都在使用Nginx,但是Apache,Lighttpd这两个Web服务器同样非常强大且实用,尤其是Apache,到目前为止仍是全球使用最广泛的Web服务软件。在实际工作,我们需要根据业务需求来选择合适的业务服务软件,有关Web服务,建议如下。

  • 静态业务:若是高并发场景,尽量采用Nginx或Lighttpd,二者首选Nginx。
  • 动态业务:理论上采用Nginx和Apache均可,建议选择Nginx,为了避免相同业务的服务软件多样化,增加额外维护成本。动态业务可以由Nginx兼做前端代理,再根据页面元素的类型或目录,转发到后端相应的服务器进行处理。
  • 既有静态业务又有动态业务:采用Nginx

此外,如果并发不是很大,又对Apache很熟悉,采用Apache也是可以的,Apache2.4版本也很强大,并发连接数也有所增加。总的来说,在满足需求的前提下,首先选择自己最擅长的软件,若发现了更好的软件,可在掌握新软件之后逐步替换。虽然动态和静态业务都倾向于选择Nginx,但是大前提是自己要熟练掌握Nginx。切记,在工作中不要盲目选择软件,这可能最终会导致自己无法控制局面,从而给企业带来灾难性的损失。


Nginx虚拟主机概念和类型介绍

虚拟主机概念:

所谓虚拟主机,在Web服务里就是一个独立的网站站点(www.apache.org),这个站点对应独立的域名(也可能是IP或端口),具有独立的程序及资源目录,可以独立地对外提供服务供用户访问。
这个独立的站点在配置里是由一定格式的标签段标记,对于Apache软件来说,一个虚拟主机的标签段通常被包含在内,而Nginx软件则使用一个server{}标签来标示一个虚拟主机,一个Web服务里可以有多个虚拟主机标签对,即同时可以支持多个虚拟主机站点。


虚拟主机类型:

常见的虚拟主机类型有如下几种。

  • 基于域名的虚拟主机

所谓基于域名的虚拟主机,意思就是通过不同的域名区分不同的虚拟主机,基于域名的虚拟主机是企业应用最广的虚拟主机类型,几乎所有对外提供服务的网站都是使用基于域名的虚拟主机,例如:www.kernel.org

  • 基于端口的虚拟主机

同理,所谓基于端口的虚拟主机,意思就是通过不同的端口来区分不同的虚拟主机,此类虚拟主机对应的企业应用主要为公司内部的网站,例如:一些不希望直接对外提供用户访问的网站后台等,访问基于端口的虚拟主机地址里要带有端口,例如:http://www.baidu.com:80

  • 基于IP的虚拟主机

同理,所谓基于IP的虚拟主机,意思就是通过不同的IP区分不同的虚拟主机,此类虚拟主机对应的企业应用非常少见,一般不同业务需要使用多IP的场景都会在负载均衡器上进行VIP绑定,而不是在Web上通过绑定IP区分不同的虚拟机。

三种虚拟主机类型均可独立使用,也可以互相混合一起使用,同学们应把基于域名的虚拟主机类型当作重点来学习掌握,其他的两个类型了解即可。


结语

欢迎来到『开源Linux』,这里是 Linux 爱好者的聚集地。专注分享Linux/Unix相关内容(包括Linux运维、Linux系统开发、网络编程、以及虚拟化和云计算等技术干货)。风里雨里,我们在这里等您,期待与您相遇。

链接:https://www.cnblogs.com/chensiqiqi/p/9162909.html

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/925.html

标签: nginx 200
分享给朋友:

“给小白的 Nginx 10分钟入门指南” 的相关文章

Nginx 负载均衡配置教程以及 upstream 详解

一、通用配置在 Nginx 中配置负载均衡非常简单。通过定义一个 upstream 块,你可以指定多个后端服务器用于负载均衡。下面是一个基本的例子:http { upstream myapp { server backend1.example.com;...

分享一段PHP代码的加密扩展 分享一段php代码的加密扩展怎么弄

介绍一个简洁、高性能、跨平台的 PHP7 代码加密扩展特点简单快速,经实测,几乎不影响性能兼容 OPcache、Xdebug 等其他扩展支持 Linux、macOS、Windows 等系统兼容 Apache、Nginx + PHP-fpm、命令行等运行模式加密算法较简单,这是出于速度考虑,但仍不易解...

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.For online documentation and suppo...

Linux 系统安装 Nginx

Linux 系统安装 NginxCentOS 7 Nginx 源代码编译安装# 官网下载最新版 https://nginx.org/en/download.html # 系统安装必备组件: yum install gcc gcc-c++ pcre pcre-devel zlib-devel ope...

Windows下配置Nginx开机自启动

如何安装、配置网站就不说了,文章主要讲讲windows中如何让nginx开机自启动1.windows中配置nginx开机启动需要借助Windows Service Wrapper工具。可以通过地址http://repo.jenkins-ci.org/releases/com/sun/winsw/wi...

【网络安全】关于PHP Study nginx解析高危漏洞的预警通报

网络安全近日,山石网科安全研究院监测发现PHPStudy Windows最新版本存在nginx解析漏洞,可以造成任意代码执行。一、漏洞情况phpStudy是一个PHP调试环境的程序集成包,该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装...