新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  SEO  推广  媒体  移动
财经百科  股票  知识  理财  财务  金融
教育考试  育儿  小学  高考  考研  留学
您当前的位置:首页 > IT > 站长技术 > 服务器

深入浅出反向代理服务器“Nginx”

时间:2019-07-11 11:01:53  来源:  作者:

首先我们先了解一下Nginx是什么

Nginx ("engine x") 是一个高性能的HTTP和反向代理 服务器,特点是占有内存少,并发能力强,事实上nginx的 并发能力确实在同类型的网页服务器中表现较好,中国 大陆使用nginx网站用户有:百度、京东、新浪、网易、 腾讯、淘宝等。

首先Nginx 不是web服务器 ,它最主要的功能有三个 “反向代理”,“负载均衡”,“动静分离”,接下来我们会主要围绕这三个功能讲解。说道服务器,肯定有小伙伴能想到Tomcat,那么Nginx和Tomcat是什么关系? Tomcat服务器不是web服务器,Nginx是代理服务器,两者功能不同,而且Nginx可以作为静态页面的web服务器,同时还支持CGI协 议的动态语言,比如perl、php等。但是不支持java。 Java程序只能通过与tomcat配合完成。所以Nginx和Tomcat算是合作关系。

下面我们主要讲Nginx的三大功能:

一 反向代理(即代理服务端)

说道反向代理,那么我么先看什么是正向代理。

深入浅出反向代理服务器“Nginx”

 

正向代理即代理客户端,以图为例,我们要访问Google,因为有防火墙的存在,我们是不能访问到的,但是我们可以通过代理服务器访问。这种方式就是正向代理。

那什么叫反向代理呢

深入浅出反向代理服务器“Nginx”

 

如果我们有一个电商网站,访问并发量特别大,那么只用一台服务器处理请求时远远不够的,所以就要用到Nginx ,代理我们的服务器,把请求分别发到几台服务器处理。这就是所谓的反向代理。

二 负载均衡

我们的Nginx 会将请求发到几台服务器,那么Nginx 对应几台服务器,怎么给这几台服务器分配请求呢,这就要提到负载均衡了,为了保证每台服务器都正常运转,我们要做负载均衡,负载均衡有很多种策略,Nginx 选择的是轮询,即按照顺序分配,分配给服务器1,分配给服务器2,分配给服务器3,分配给服务器1,以此类推。

三 动静分离

大家都知道我们编写程序要尽可能的解耦,假设我们的程序中静态资源域与代码都耦合在一起,我们每改一个图片,一个样式都需要改代码,这时我们的Nginx 就派上了用场,Nginx 可以 将静态资源与动态资源分离。

深入浅出反向代理服务器“Nginx”

 

Nginx可以将我们的静态资源存在在一个文件系统中,我们需要静态资源的时候,只需要将静态资源的url填上,我们改变静态资源的时候,也只需改变文件系统中的静态资源,不需要改动我们的代码。

讲了Nginx的三大功能,我么再接着讲讲Nginx的底层原理

Nginx采用了master-workers的机制

深入浅出反向代理服务器“Nginx”

 


深入浅出反向代理服务器“Nginx”

 

首先,对于每个worker进程来说,独立的进程,不需要加锁, 所以省掉了锁带来的开销,同时在编程以及问题查找时,也会方 便很多。 其次,采用独立的进程,可以让互相之间不会影响,一个进程 退出后,其它进程还在工作,服务不会中断,master进程则很快启 动新的worker进程。当然,worker进程的异常退出,肯定是程序有 bug了,异常退出,会导致当前worker上的所有请求失败,不过不 会影响到所有请求,所以降低了风险。

当请求过来时,会通知到我们的master,master会通知worker,所有worker会争抢这个请求,所以Nginx效率很高。那么我们要设置多少个worker, Nginx 同redis类似都采用了io多路复用机制,每个 worker都是一个独立的进程,但每个进程里只有一个主线 程,通过异步非阻塞的方式来处理请求, 即使是千上万个 请求也不在话下。每个worker的线程可以把一个cpu的性 能发挥到极致。 所以worker数和服务器的cpu数相等是最为适宜的。设 少了会浪费cpu,设多了会造成cpu频繁切换上下文带来的 损耗。



Tags:Nginx   点击:()  评论:()
声明:本站部分内容来自互联网,如有任何版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的...【详细内容】
2019-07-11   Nginx  点击:(2)  评论:(0)  加入收藏
首先我们先了解一下Nginx是什么Nginx ("engine x") 是一个高性能的HTTP和反向代理 服务器,特点是占有内存少,并发能力强,事实上nginx的 并发能力确实在同类型的网页服务器中表...【详细内容】
2019-07-11   Nginx  点击:(1)  评论:(0)  加入收藏
1.伪静态的概念伪静态是地址栏看起来是静态,改变了地址的表现形式,但是后台处理的还是动态页面。2.伪静态的优缺点优点:在SEO方面,伪静态和静态页面是一样的,由于搜索引擎比较喜...【详细内容】
2019-07-10   Nginx  点击:(2)  评论:(0)  加入收藏
Nginx的产生没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者...【详细内容】
2019-07-09   Nginx  点击:(6)  评论:(0)  加入收藏
在/usr/local/nginx/conf/nginx.conf 配置文件中插入charset utf-8;或者charset 'utf-8';server { listen 80; server_name localhost; charset utf-8; #access_lo...【详细内容】
2019-07-08   Nginx  点击:(8)  评论:(0)  加入收藏
1 反向代理1.1 概念反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上...【详细内容】
2019-07-02   Nginx  点击:(11)  评论:(0)  加入收藏
Nginx现在已经是最火的负载均衡之一,在流量陡增的互联网面前,接口限流也是很有必要的,尤其是针对高并发的场景。Nginx的限流主要是两种方式:限制访问频率和限制并发连接数。 一...【详细内容】
2019-07-01   Nginx  点击:(23)  评论:(0)  加入收藏
apache三种工作模式我们都知道Apache有三种工作模块,分别为prefork、worker、event。prefork:多进程,每个请求用一个进程响应,这个过程会用到select机制来通知。worker:多线程,一...【详细内容】
2019-06-18   Nginx  点击:(8)  评论:(0)  加入收藏
PHP-FPM 介绍CGI 协议与 FastCGI 协议每种动态语言( PHP,Python 等)的代码文件需要通过对应的解析器才能被服务器识别,而 CGI 协议就是用来使解释器与服务器可以互相通信。PHP...【详细内容】
2019-06-17   Nginx  点击:(6)  评论:(0)  加入收藏
很多场景下,不得不承认Nginx是个好东西,它给我们的跨系统间的访问、安全性方面等等,带来了极大的便利,况且它的性能也极高。Nginx是一个异步框架的 Web服务器,可用作正向代理,也可...【详细内容】
2019-06-17   Nginx  点击:(9)  评论:(0)  加入收藏
Nginx简述Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。Nginx功能丰富,可作为HTTP Web服务器,也可...【详细内容】
2019-06-13   Nginx  点击:(41)  评论:(0)  加入收藏
创建一个不能登录的www-data用户,属于www-data组groupadd www-datauseradd -s /sbin/nologin -g www-data www-data修改nginx.confvim /etc/nginx/nginx.conf......#使nginx...【详细内容】
2019-05-08   Nginx  点击:(23)  评论:(0)  加入收藏
通俗点将,负载均衡就是因为访问流量太大,导致项目访问不流畅、甚至宕掉,所以通过一种分流的方式来缓解这种情况。 一、 工具nginx-1.8.0apache-tomcat-6.0.33二、 目标实现高性...【详细内容】
2019-04-28   Nginx  点击:(24)  评论:(0)  加入收藏
没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator)URL作为沟...【详细内容】
2019-04-17   Nginx  点击:(32)  评论:(0)  加入收藏
推荐资讯
相关文章
栏目更新
栏目热门