Nginx 是什么,第1张

是个服务器,主要是php常用到的服务器。

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

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

优点是可以在大多数 Unix like OS 上编译运行,并有 Windows 移植版。 Nginx 的140稳定版已经于2013年4月24日发布,一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。Nginx 的源代码使用 2-clause BSD-like license。

Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性:

在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。

1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。

2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。

4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。

5、location块:配置请求的路由,以及各种页面的处理情况。

6、缓存控制字段cache-control的配置说明 ( https://wwwcnblogscom/kevingrace/p/10459429html )

HTTP协议的Cache -Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置 Cache-Control并不会影响另一个消息处理过程中的缓存处理过程。

请求时的缓存指令包括: no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached等。

响应消息中的指令包括: public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age。

no-cache: 数据内容不能被缓存, 每次请求都重新访问服务器, 若有max-age, 则缓存期间不访问服务器

no-store: 不仅不能缓存, 连暂存也不可以(即: 临时文件夹中不能暂存该资源)

private(默认): 只能在浏览器中缓存, 只有在第一次请求的时候才访问服务器, 若有max-age, 则缓存期间不访问服务器

public: 可以被任何缓存区缓存, 如: 浏览器、服务器、代理服务器等

max-age: 相对过期时间, 即以秒为单位的缓存时间

no-cache, private: 打开新窗口时候重新访问服务器, 若设置max-age, 则缓存期间不访问服务器

设置以分钟为单位的绝对过期时间, 优先级比Cache-Control低, 同时设置Expires和Cache-Control则后者生效 也就是说要注意一点: Cache-Control的优先级高于Expires

expires起到控制页面缓存的作用,合理配置expires可以减少很多服务器的请求, expires的配置可以在http段中或者server段中或者location段中 比如控制等过期时间为30天

客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。

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

正向代理的用途:

(1)访问原来无法访问的资源,如Google

(2) 可以做缓存,加速访问资源

(3)对客户端访问授权,上网进行认证

(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

多个客户端给服务器发送的请求,Nginx服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。此时~请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,Nginx扮演的就是一个反向代理角色。

客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。

反向代理,"它代理的是服务端,代服务端接收请求",主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。

反向代理的作用:

(1)保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网

(2)负载均衡,通过反向代理服务器来优化网站的负载

反向代理是指服务器根据客户端的请求,从其关系的一组或多组后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端,客户端只会得知反向代理的IP地址,而不知道在代理服务器后面的服务器簇的存在。

两者区别:

1、用途差异

正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性减少网络使用率;

反向代理的典型用途是将防火墙后面的服务器提供给Internet用户访问。反向代理还可以为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务。

2、安全差异

正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此必须采取安全措施以确保仅为经过授权的客户端提供服务;反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。

扩展资料:

反向代理工作方式:

1、通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。

2、由于外部网络上的主机并不会配置并使用这个代理服务器,普通代理服务器也被设计为在Internet上搜寻多个不确定的服务器,而不是针对Internet上多个客户机的请求访问某一个固定的服务器,因此普通的Web代理服务器不支持外部对内部网络的访问请求。

3、当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。此时代理服务器对外就表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web服务器而不需要特定的配置。

4、不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器的攻击并不会使得网页信息遭到破坏,这样就增强了Web服务器的安全性。

-反向代理

代理主要用在网络连接方面,不同类型的代理用于不同类型的连接。有一些代理用于隐藏用户的身份,而另外一些代理用于隐藏服务器的信息。常见的代理类型有正向代理和反向代理。这两种代理的名字有些相近,不过差别却非常大。

正向代理也就是大家常说的“代理”。用户向代理服务器发送请求,代理服务器从网络中检索数据。正向代理最典型的应用场景就是绕过网络限制。比如你们学校或公司的网络限制访问抖音,可以通过设置一台代理服务器,然后不直接连接抖音的服务,而是走代理,让代理来访问抖音的服务。

目的服务收到的请求来源IP会是代理服务器的IP,而不是用户的IP。这使得代理服务器可以提供一定的匿名性。

与正向代理功能相近的是NAT,两者都可以通过私有IP地址提供互联网访问。不过这两种技术在TCP/IP协议栈中的位置不同。NAT工作在网络层,而代理工作在应用层。对使用者来说,NAT对各种应用程序都是透明的;而使用代理则必须在应用程序中指定代理服务器的主机地址。

比如,使用NAT访问网页,不需要在浏览器上进行任何配置;而要使用代理访问网页,必须要在浏览器中指定代理的IP地址,如果代理仅支持HTTP协议,则只能通过代理访问Web服务器,不能访问FTP服务器。

由于NAT并非针对应用程序,因此在访问互联网时,NAT提供了比代理更高的可伸缩性。不过,NAT无法提供基于用户名和密码的身份验证。而代理支持身份验证,可以配置代理服务器仅允许特定用户访问互联网。

Web代理是最常用的正向代理,用于代理HTTP请求。除了会把完整的url传递过去外,来自客户端的请求与常规HTTP请求几乎没有什么两样。下面是一个请求的例子:

代理服务器收到请求后,向目标服务器发起请求,并且返回响应,比如:

上面的例子只对HTTP协议生效。有一些Web代理允许通过HTTP CONNECT方法建立通信隧道,利用这个隧道,代理服务器可以转发任意TCP数据包。

通过CONNECT方法,客户端要求HTTP代理服务器将TCP连接转发到所需的目的地;然后,服务器代表客户端向目标服务器发起连接。服务器建立连接后,代理服务器将继续与客户端之间来回代理TCP数据流。在上面的过程中,只有初始的连接请求是HTTP,之后服务器仅代理建立的TCP连接。

客户端连接到代理服务器,在请求中指定主机和端口,例子如下:

如果代理服务器允许连接并且连接到指定的主机,返回2XX成功响应:

现在,客户端发送到代理服务器的所有数据都蒋被转发给远程主机。

流行的HTTP代理服务器软件有Haproxy、Apache、Squid等。

反向代理一般用于控制对专用网络上服务器的访问。它代表一个客户端从一个或多个服务器检索资源,然后将这些资源返回给客户端,好像资源源自代理服务器本身一样。

流行的Web服务器经常使用反向代理功能,从而屏蔽HTTP功能“较弱”的应用程序框架。这里的“较弱”主要指的是处理大量负载能力比较弱,以及处理不同形式的请求格式的能力比较弱,比如HTTP协议就有HTTP(S)1x,HTTP(S) 2x多个版本。反向代理可以将HTTPS请求转换为HTTP请求、暂时缓存请求以保护后端服务器、处理一些cookie和会话数据等等。

反向代理是非常有用的。常见用途如下:

与正向代理充当关联的客户端与任意服务器中介不同,反向代理是任意客户端与关联服务器的中介。换句话说,正向代理代表客户端,而反向代理代表服务器。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Nginx 是什么

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情