新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  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   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
一:作用Ngx_http_log_module:定义日志格式,并且以指定的格式保存。二:示例配置log_format compression '$remote_addr - $remote_user [$time_local] ' '"$request...【详细内容】
2019-10-09   Nginx  点击:(4)  评论:(0)  加入收藏
Location表达式类型 ~ 表示执行一个正则匹配,区分大小写 ~* 表示执行一个正则匹配,不区分大小写 ^~ 表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其他location =...【详细内容】
2019-10-08   Nginx  点击:(7)  评论:(0)  加入收藏
bug没有爱安装Nginx1.安装软件包epel-release并更新,它会帮我们自动配置好yum的软件仓库。yum -y install epel-releaseyum update2.安装nginx,一般的项目不建议wget下载包编...【详细内容】
2019-09-29   Nginx  点击:(6)  评论:(0)  加入收藏
Nginx是一个流行的web服务器,用于提供web应用程序的静态资源(客户端源)。我将解释如何将Nginx设置为静态内容资源web服务器,以及如何将它配置为Linux系统上的反向代理(连接客...【详细内容】
2019-09-27   Nginx  点击:(11)  评论:(0)  加入收藏
FastCgi是通讯协议,可以通过Unix套接字或者Tcp进行通讯.Nginx内置基本模块FastCgi模块(控制缓存区大小等功能)Nginx通过FastCgi技术和外部的服务或者工具一起工作.Php自己能...【详细内容】
2019-09-26   Nginx  点击:(3)  评论:(0)  加入收藏
1. 什么是反向代理:反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量,将客户机请求转发给内部网络上的目标服务器;并将从服务器上得到的结果返回给I...【详细内容】
2019-09-25   Nginx  点击:(12)  评论:(0)  加入收藏
1.什么是跨域以及产生原因跨域是指a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,或是a页面为ip地址,b页面为域名地址,所进行的访问行动都是跨域的,而浏览器...【详细内容】
2019-09-25   Nginx  点击:(12)  评论:(0)  加入收藏
在 nginx 下,提供了 ngx_http_auth_basic_module 模块实现让用户只有输入正确的用户名密码才允许访问web内容。默认情况下,nginx 已经安装了该模块。所以整体的一个过程就是先...【详细内容】
2019-09-24   Nginx  点击:(12)  评论:(0)  加入收藏
环境是使用lnmp一键安装包搭建的;1 首先去这个网站下载证书:免费ssl证书最终会得到两个文件2:在/usr/local/nginx/conf创建cert目录把这两个文件放进去,这个地址后面有用。编辑/...【详细内容】
2019-09-24   Nginx  点击:(13)  评论:(0)  加入收藏
方式一:通过调节负载均衡权重负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的...【详细内容】
2019-09-24   Nginx  点击:(12)  评论:(0)  加入收藏
背景当你的服务器项目特别多的时候,每一个项目都需要一个域名或者端口,--! 需要自己记住很多的域名和端口。为了方便自己使用和管理,可以考虑在nginx配置上加上一些端口转发。...【详细内容】
2019-09-24   Nginx  点击:(10)  评论:(0)  加入收藏
引言nginx 安装安装依赖 下载 编译安装编译时将 ssl 模块静态编译 nginx 服务架构模块化结构模块化开发 nginx 的模块化结构 nginx 的模块清单 nginx 的 web 请求处理机制...【详细内容】
2019-09-20   Nginx  点击:(15)  评论:(0)  加入收藏
最近遇到了nginx疯狂抛错,access.log一天一共5W多条,但error.log中有大概9K多条,基本都是111: Connection refused,这到底是为什么呢?从日志看起我们还是先来看日志。我提取了一...【详细内容】
2019-09-19   Nginx  点击:(49)  评论:(0)  加入收藏
Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少(一个worker进程只占用10-12M内存),启动极快,高并发能力强,在互联网项目中广泛应用。...【详细内容】
2019-09-17   Nginx  点击:(19)  评论:(0)  加入收藏
过滤模块的分析相关结构体ngx_chain_t 结构非常简单,是一个单向链表: typedef struct ngx_chain_s ngx_chain_t; struct ngx_chain_s { ngx_buf_t *buf; ngx_chain_t *next;...【详细内容】
2019-09-16   Nginx  点击:(13)  评论:(0)  加入收藏
一、安装在Centos下,yum源不提供nginx的安装,可以通过切换yum源的方法获取安装。也可以通过直接下载安装包的方法,**以下命令均需root权限执行**:首先安装必要的库(nginx 中gzip...【详细内容】
2019-09-16   Nginx  点击:(17)  评论:(0)  加入收藏
当前大多数的互联网系统都使用了服务器集群技术,集群是将相同服务部署在多台服务器上构成一个集群整体对外提供服务。 图片来自 Unsplash这些集群可以是 Web 应用服务器集...【详细内容】
2019-09-11   Nginx  点击:(24)  评论:(0)  加入收藏
分布式拒绝服务攻击(DDoS)指的是通过多台机器向一个服务或者网站发送大量看似合法的数据包使其网络阻塞、资源耗尽从而不能为正常用户提供正常服务的攻击手段。随着互联网带宽...【详细内容】
2019-09-11   Nginx  点击:(18)  评论:(0)  加入收藏
Nginx 的进程模型 Nginx 服务器,正常运行过程中: 多进程:一个 Master 进程、多个 Worker 进程 Master 进程:管理 Worker 进程 对外接口:接收外部的操作(信号) 对内转发:根据外部的操...【详细内容】
2019-09-06   Nginx  点击:(34)  评论:(0)  加入收藏
前段时间公司有个应用做什么营销活动,不知道咋回事,一个平常之后1-2万人在线的应用,突然来了10多万人,然后呢,系统就异常的慢,异常的慢,持续了很长时间,被客户投诉的很惨。就说负责...【详细内容】
2019-09-06   Nginx  点击:(32)  评论:(0)  加入收藏
推荐资讯
相关文章
栏目更新
栏目热门