nginx介绍

Posted Firm陈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx介绍相关的知识,希望对你有一定的参考价值。

一.Nginx是什么?

nginx是一个 高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强。事实上 Nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 Nginx 的网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言比如 perl、php等,但是不支持 java,Java 程序只能通过与 tomcat 配合完成。Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率 ,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。
Nginx 是 C语言开发的,建议在 Linux 上运行,当然也可以安装 Windows 版本。

二.Nginx的优缺点

1.优点
(1)高并发量:基于epoll/kqueue模型开发,支持高并发量,官方说其支持高达5w并发连接数的响应。
(2)内存消耗少:善于处理静态文件,相较于其他web(如:apche),占用更少的内存及其资源。
(3)简单稳定:配置简单(一个conf文件),运行简单(nginx命令),而且运行起来稳定。
(4)模块化程度高:功能模块插件化设计,可以自由配置相应的功能。
(5)支持Rwrite重写规则:能够根据域名、URL等请求关键点,实现定制化的高质量分发。
(6)低成本:Nginx的负载均衡功能很强大而且免费开源,相较于几十万的硬件负载均衡器成本相当低。
(7)支持多系统:Nginx代码完全用C语言从头协程,可以在各个系统上编译并使用。

2.缺点
(1)动态处理能力差:Nginx善于处理静态文件,但是处理动态页面的能力相较于Apache之类的重量级web软件能力稍差。
(2)rewrite弱:虽然nginx支持rewrite功能多,但是相较于Apache之类的重量级的web软件能力稍差。

三.正向代理和反向代理

1.代理服务器
代理服务器(Proxy Server)的功能是代理网络用户去取得网络信息。形象地说,它是网络信息的中转站,是个人网络和Internet服务商之间的中间代理机构,负责转发合法的网络信息,对转发进行控制和登记。
代理服务器作为连接Internet与Intranet的桥梁,在实际应用中发挥着极其重要的作用,它可用于多个目的,最基本的功能是连接,此外还包括安全性、缓存、内容过滤、访问控制管理等功能。更重要的是,代理服务器是Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联(OSI)模型的对话层。

使用代理服务器的好处:
(1)提高访问速度。
防火墙作用:通过代理服务器访问远程站点,可以在大力服务器上设限,过滤掉某些不安全的信息,同时正向代理上网者可以隐藏自己的ip,免收攻击。
(2)突破访问的限制。
(3)可以通过代理服务器,访问目标站点。

2.正向代理
正向代理是一个位于客户端A和原始服务器(服务器B)之间的服务器(代理服务器Z),为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。

用途:在防火墙内的局域网客户端提供访问Internet的途径。还可以使用缓冲特性减少网络使用率。

从安全性来讲:

正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。
在这里插入图片描述
举例:
A向C借钱,由于一些情况不能直接向C借钱,于是A找B,B向C借钱,于是A得到了钱。但是C并不知道A的存在。B就充当了A的代理人的角色。总结来说:正向代理隐藏了客户端client

注意:正向代理是代理用户向服务器转发请求。

3.反向代理
客户端(用户A)向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。而客户端始终认为它访问的是原始服务器B而不是服务器Z。由于防火墙作用,只允许服务器Z进出,防火墙和反向代理共同作用保护了院子资源服务器B。
在这里插入图片描述
反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。

举例:
A向B借钱,B没有拿自己钱,而是悄悄的向C去借钱,然后再交给A,A以为是B得钱,但不知道C的存在

注意:反向代理代理的是服务器向真实的服务器发送请求。

四.nginx的主要功能

1.反向代理
反向代理:是用来代理服务器的,代理我们要访问的目标服务器。
代理服务器接受请求,然后将请求转发给内部网络的服务器(集群化),
并将从服务器上得到的结果返回给客户端,此时代理服务器对外就表现为一个服务器。
在这里插入图片描述
Nginx在反向代理上,提供灵活的功能,可以根据不同的正则采用不同的转发策略,如图设置好后不同的请求就可以走不同的服务器。

2.负载均衡
负载均衡:多在高并发情况下需要使用。其原理就是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,多台服务器(集群)共同完成工作任务,从而提高了数据的吞吐量。
在这里插入图片描述
3.动静分离
Nginx提供的动静分离是指把动态请求和静态请求分离开,合适的服务器处理相应的请求,使整个服务器系统的性能、效率更高。

Nginx可以根据配置对不同的请求做不同转发,这是动态分离的基础。静态请求对应的静态资源可以直接放在Nginx上做缓冲,更好的做法是放在相应的缓冲服务器上。动态请求由相应的后端服务器处理。

以上是关于nginx介绍的主要内容,如果未能解决你的问题,请参考以下文章

nginx介绍

四十LNMP架构介绍MySQL安装PHP安装Nginx介绍

LNMP架构结介绍,MySQL和PHP的安装以及Nginx介绍

Nginx介绍

介绍+安装Nginx的介绍和安装详解

LNMP架构介绍 MySQL安装 PHP安装 Nginx介绍