反向代理介绍,Nginx在分布式架构中的作用

一、常用的Web服务器介绍

服务器介绍

Web服务器分为静态服务器和动态服务器,静态服务器就是处理静态资源的,比如html,CSS,js,常用的有Apache、Nginx;动态服务器就是处理动态请求的,比如jsp,servlet等,常用的有Tomcat,Weblogic。

Nginx是一个高性能的Http服务器和反向代理服务器,能够支持5万个并发连接,内存,CPU消耗非常低,是基于七层协议的服务。

反向代理介绍

我们平时说的代理指的是代理客户端,这个是正向代理,反向代理指的是代理服务端。

我们作为用户想访问一个服务资源URL,如果我们的浏览器直接打不开这个URL,一般会通过vpn或者其他代理服务器中转,这种情况下的代理就是正向代理,也就是我们通常说的代理的意思。

而反向代理是指,作为服务资源提供方,内部有很多服务器,这些服务器不能全部暴露给第三方用户,因此需要在内部服务器的前面加一个代理服务器,用户访问的是代理服务的IP,而不知道具体访问的是服务端的哪台机器,这种情况就是反向代理,指的是代理服务端。

二、Nginx在分布式架构中的作用

分布式架构的演进

一个网站的初期,访问的流量比较小,选用的架构可能就是用户通过域名访问,经过域名解析(DNS服务器),拿到后端服务器的IP地址,直接访问到这个IP所对应的Tomcat服务器,这是最简单的一个网站架构。


随着用户流量的增大,一台Tomcat服务器无法满足用户的请求,因此人们会想到2个办法:

  1. 升级这台服务器更换更强大的硬件,这就是垂直扩展;

  2. 增加新的服务器来分担前端流量,这就是水平扩展;

垂直扩展的方式就是对一台服务器不断加强硬件,但是服务器的可扩展内存会有上限,总会达到瓶颈,而且成本比较高,因此人们一般会选择水平扩展。一台不够再加一台,不行再加一台......


为了应对流量的增加,不断的增加后端服务器的数量,那么服务器的IP会越来越多,通过DNS服务器管理这些服务器IP带来了新的问题:

1、后端的某台机器宕机后,DNS服务器不知道该机器宕机,仍然解析到了这个IP,如果用户访问到了这个宕机的IP,那么系统无法为用户提供服务。

2、DNS服务器配置新的IP后,它不会立即生效,那么在它生效的这个时间段,新加的服务器不会为用户提供服务。


反向代理和负载均衡服务器可以很好地解决上面的问题。

用了反向代理服务器后,网站的架构就进一步演进,变成了用户通过域名访问,DNS服务器返回反向代理服务器的IP,反向代理服务器根据被代理服务器的IP配置和负载均衡的策略转发用户的请求到不同的后端服务器,后端服务器返回响应结果到反向代理服务器,反向代理服务器返回结果给用户。

反向代理服务器因为只转发用户的请求而不做具体处理,因此它的性能比应用服务器强大。


随着流量的继续增大,单台反向代理服务器成为了瓶颈,我们就会对其做集群,解决高性能的问题,对其做主备解决高可用的问题。

至此,一个网站的分布式架构的演进过程介绍完了。

Nginx在分布式架构的作用

通过上面的架构演进介绍,我们知道分布式架构中最重要的思路就是水平扩展,水平扩展最重要的一个环节就是反向代理和负载均衡。

Nginx就是一个高性能的反向代理和负载均衡服务器,它可以支持5万的并发访问,同时它可以做动静分离,可以解决跨域访问和防盗链的问题。

三、Nginx的下载与安装

要了解一个软件或者学习一个技术,第一步就是安装,只有安装好了,我们才可以对其进行练习和使用,最终达到掌握的目的。

Nginx是一个开源的软件,我们可以从官网上下载其最新的版本进行安装和使用。

Nginx的下载

官网:http://nginx.org/en/download.html

我们下载nginx-1.14.1版本,下载的是Nginx的源码,C语言写的。

640?wx_fmt=png

Nginx的安装过程

源码的安装一般有三个步骤:配置(configure)、编译(make)、安装(make install)

  1. 在centos7的虚拟机根目录下建立/data/program的文件夹,用来存放应用程序文件

  2. 把下载的nginx-1.14.1.tar.gz文件上传到/data/program的文件夹下

  3. 解压nginx-1.14.1.tar.gz文件

    tar -zxvf nginx-1.14.1.tar.gz
  4. 在/data/program目录下创建nginx文件夹把Nginx软件安装到该目录下,便于管理

  5. 对nginx进行安装前的配置检查

    ./configure --prefix=/data/program/nginx
  6. 在配置检查这一步,可能会遇到一些缺少依赖库的问题,按照提示用yum命令进行安装即可

  7. 依赖安装后,再一次执行命令对Nginx进行安装前的配置检查,不通过则继续yum安装依赖,直到配置检查通过

    1、找不到c编译器:yum -y install gcc
    2、找不到PCRE library:yum -y install pcre-devel
    3、找不到zlib包:yum -y install zlib-devel
  8. 配置好之后,进行编译和安装

    make && make install
  9. 进入nginx目录下,出现conf,html,logs,sbin目录,则说明安装完成。

    [root@base-1 nginx]# ls
    conf html logs sbin
    [root@base-1 nginx]#

    Nginx的启动和停止

  • Nginx的启动

   到/data/program/nginx/sbin目录下执行./nginx
  [root@base-1 sbin]# pwd
  /data/program/nginx/sbin
  [root@base-1 sbin]# ls
  nginx
  [root@base-1 sbin]# ./nginx
  • 查看效果

   启动后,访问nginx,浏览器输入:http://192.168.1.8
  如果访问不到,说明防火墙的问题
  临时关闭防火墙:systemctl stop firewalld
  防火墙禁止开机启动:systemctl disable firewalld

 640?wx_fmt=png

  访问到上图的界面,说明Nginx已经生效。

  • Nginx的停止

   到/data/program/nginx/sbin目录下执行./nginx -s stop
  [root@base-1 sbin]# ./nginx -s stop

640?wx_fmt=png

640?wx_fmt=png

知识指导行动,行动决定命运。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值