Nginx反向代理服务

一、代理服务器

1、什么是代理服务器

代理服务器是网络信息的中转站。一般情况下,使用网络浏览器直接去链接其它Internet站点并取得网络信息时,须送出请求信号来得到应答,然后对方再把信息传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,请求信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。而且,大部分代理服务器都具有缓冲的功能,就好像一个大的Cache,它不断将新取得数据包存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。
代理服务器不仅可以实现提高浏览速度和效率的功能,它还可以实现网络的安全过滤、流量控制(减少Internet使用费用)、用户管理等功能,因此它既是一种网络防火墙技术,同时也可以解决许多单位连接Internet引起IP地址不足的问题。
nginx作为web服务器一个重要的功能就是反向代理,当然你也可以使用nginx配置正向代理。在了解反向代理服务器前我们先看看正向代理是咋回事。

2 、什么是正向代理服务器

举一个简单的例子:比如你在工作单位有一个局域网,这个局域网是与互联网不联通的,但你又想上QQ,或上网购卖物品,咋办呢?于是有同事偷偷给网管说好话在局域网中的一台计算机上放两个网卡一个网卡指向互联网(指向互联网的网卡要连网线哦!)另一个网卡与局域网联通,上互联网的网卡IP设置成静态IP(比如IP地址设置成为:192.168.2.200),这个IP就成为上互联网的网关,你只需要在你的适配器属性中把网关那一栏加上(192.168.12.200)就可以偷偷的上互联网了,这就是所谓的正向代理。而放两个网卡的计算机就称为正向代理计算机或叫代理服务器也可以。记得很早以前正向代理服务器很吃香那时候上国外网站都想看看外面的世界。于是乎到处搜索代理服务器。你也可以这样看正向代理:从局域网上互联网就叫正向代理反之就是反向代理。从国内上国处网站就叫正向代理你可以把国内看成一个大号的局域网就可以了。
附上百度对正向代理的解释:
正向代理:是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。

如下图一:就是正向代理拓扑图
在这里插入图片描述

3、什么是反向服务器

先附上百度解释:
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
现在讲解我的理解:你可以这样看反向代理服务器就是从互联网访问局域网内的某一台电脑,而这一台电脑是与局域网是联通的,它又与互联网联通。这台与互联网联通又与局域网联通的那台电脑就叫反向代理服务器。如果从局域网内部的人看这台服务器就是正向代理服务器,如果从局域网处的人看这台电脑就叫反向代理服务器。你也可以这样看淘宝、百度、京东,58同城等互联网企业就是一个局域网。你在访问这些企业的内部的一台电脑。

如下图二:就是反向代理拓扑图
在这里插入图片描述

二、反向代理有什么好处

1、具有防火墙的作用

如上图二所示:反向代理服务器与企业内的服务器是隔离开的。它很好的保护了企业内服务器的安全。如反向代理服务器对外的端口是80 而内部服务器的端口可以是8080或其它的什么端口,外部入侵者无法攻击内部服务器。从而保存了内部服务器的数据安全。

2、负载均衡

nginx的负载均衡设置:地址:http://nginx.org/en/docs/
在这里插入图片描述
在这里插入图片描述
打开网址会有对负载均衡详细的说明

2.1upstream模块

upstream模块主要负责负载均衡的配置,通过默认的轮询调度方式来分发请求到后端服务器
upstream模块如图三所示:
在这里插入图片描述
nginx反向代理不需要编译额外的模块,默认自带proxy_pass和fastcgi_pass指令,通过在location配置块中增加指令就可以实现反向代理功能。

#user  nobody;
worker_processes  1;
events 
{
    worker_connections  1024;
}


http
 {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
 		
 		upstream upstream_name 
 		{
		  server 192.168.1.20:8080  weight=5; #负载均衡轮询
		  server 192.168.1.30:8080;	weight=5;
		 
		}
 		server 
 		{
      	listen       80;
      	server_name  www.xxx.com;

     		location /
     		{
        	root   html;
        	index  index.html index.htm;
        	proxy_pass http://upstream_name; #反向代理服务器的地址
     		}

     		error_page   500 502 503 504  /50x.html;
     		location = /50x.html 
     		{
          root   html;
     		}

  	}  
}

上述upstream upstream_name 函数内的 192.168.1.20:8080 weight=5;
192.168.1.30:8080 weight=5; 分别是两台服务器的地址,两台服务器的内容是一样的数据
weight 是权重比。如果有10人访问反向代理服务器前五人被分配到192.168.1.20:8080后五人被分配到192.168.1.30:8080。

2.2nginx支持的负载均衡调度算法方式如下:

1、weight轮询(默认):接收到的请求按照顺序逐一分配到不同的后端服务器,即使在使用过程中,某一台后端服务器宕机,nginx会自动将该服务器剔除出队列,请求受理情况不会受到任何影响。 这种方式下,可以给不同的后端服务器设置一个权重值(weight),用于调整不同的服务器上请求的分配率;权重数据越大,被分配到请求的几率越大;该权重值,主要是针对实际工作环境中不同的后端服务器硬件配置进行调整的。
2、ip_hash:每个请求按照发起客户端的ip的hash结果进行匹配,这样的算法下一个固定ip地址的客户端总会访问到同一个后端服务器,这也在一定程度上解决了集群部署环境下session共享的问题。
3、fair:智能调整调度算法,动态的根据后端服务器的请求处理到响应的时间进行均衡分配,响应时间短处理效率高的服务器分配到请求的概率高,响应时间长处理效率低的服务器分配到的请求少;结合了前两者的优点的一种调度算法。但是需要注意的是nginx默认不支持fair算法,如果要使用这种调度算法,需要安装upstream_fair模块
4、url_hash:按照访问的url的hash结果分配请求,每个请求的url会指向后端固定的某个服务器,可以在nginx作为静态服务器的情况下提高缓存效率。同样要注意nginx默认不支持这种调度算法,要使用需要安装nginx的hash软件包

3、提高访问速度

由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门站点能明显提高请求速度。

总结

Nginx是由伊戈尔·赛索耶夫开发的。第一个公开版本0.1.0发布于2004年10月4日。Nginx 可以在大多数 Unix Linux OS 上编译运行,并有 Windows 移植版。 Nginx 的1.19.2稳定版已经于2020年8月11日发布。
Nginx 是一个很强大的高性能Web和反向代理服务,它具有很多非常优越的特性,在连接高并发的情况下,能够支持高达 50,000 个并发连接数的响应。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杏雨1969

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值