Nginx快速入门

Nginx快速入门

 

一、什么是Nginx?

 

nginx是一个高性能,高并发的web服务器、Http反向代理服务器。它的作用是可以部署静态web资源, 给应用服务器做反向代理, 并能实现负载均衡。

 

说到这里, Nginx的核心是反向代理?那什么是反向代理?有反向是不是必定有正向代理?

 

正向代理

 

客户端通过代理服务器代理访问应用服务, 这叫正向代理,也就是代理服务器代理的对象是客户端。比如国内的电脑因为某些原因不能访问到goggle,那么这时候就可以通过vpn连到一台可以访问到goggle的代理服务器, 通过这台代理服务器代理访问goggle, 代理服务器访问goggle成功后转回被代理客户端。

 

反向代理

 

服务器通过代理服务器代理被客户端访问, 这叫反向代理,也就是反向代理服务器代理的是服务端。

因为一些原因,应用服务器往往不想被外界直接访问, 这时候就可以通过反向代理服务器做代理,客户端的请求先到反向代理服务器, 代理服务器再转发到应用服务器。这样的好处就是对外不直接暴露了真实的应用服务,还可以通过反向代理对请求进行一系列处理后再转到具体应用服务, 比如做负载均衡。

 

二、Nginx的工作模式

 

Nginx的工作模式是Master + Works模式, 分为一个Master进程和多个Works进程共同工作。Master进程负责读取配置文件, 以及管理Works进程,Works进程负责处理请求与连接, 其中Works可以有多个同时工作,数量可以在Nginx配置文件配置。一般设为等于cpu的核心数。

 

正是这种Master + Works模式让Nginx可以实现热部署, 也就是可以实现修改nginx配置后无需重启, 只需要执行nginx -s reload即可完成配置更新, 客户端零感知。它的原理是Master在监听着配置文件更新的指令,接收到配置文件更新的指令,就会以新的配置创建新的Works,然后等待旧的Works把正在处理的请求和链接处理完成之后再kill掉, 最后换上新的Works继续工作。

 

Nginx还基于Linux的eopll模块实现, 也就是基于事件驱动模型。Works在接收到请求时, 会先把请求加入到事件队列, 而不是马上处理。然后会有另外的线程在遍历事件队列,取出请求进行处理。从而不会产生阻塞现象,支持高并发、高性能处理请求。

 

三、Nginx配置。

 

PS: 本文章不具体展开讲解配置, Nginx配置讲解会另起一片文章说明。

 

配置虚拟主机

 

通过Server、Location模块即可根据域名,端口。IP配置虚拟主机

 

配置反向代理

 

通过location的passproxy即可配置反向代理

 

配置负载均衡

 

通过upstream模块即可配置负载均衡

 

详细可以看我另外一篇文章: https://blog.csdn.net/qq_16148137/article/details/99695653

 

四、Nginx实现高可用

 

Nginx可以用于做负载均衡, 所有流量都会先通过Nginx在转发到后端服务器。这样一来, 如果Nginx只有一个实例的话,那么也会造成单点故障。解决方案就是要做双机热备, 可以通过Keepalived + Nginx 或 LVS + Keepalived + Nginx来实现高可用web架构。其中比较关键的是Keepalived ,它的作用是对Nginx的运行状态进行健康检查,一旦出现“主”节点挂了, 能自动切换至“从”节点。

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值