Nginx反向代理服务

  • 一、代理服务器
    • 1、什么是代理服务器
    • 2 、什么是正向代理服务器
    • 3、什么是反向服务器
  • 二、反向代理有什么好处
    • 1、具有防火墙的作用
    • 2、负载均衡
      • 2.1upstream模块
      • 2.2nginx支持的负载均衡调度算法方式如下:
    • 3、提高访问速度
  • 总结

一、代理服务器

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网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx反向代理服务相关推荐

  1. nginx反向代理服务contextpath的问题解决

    文章目录 问题描述 解决方案 sub_filter方案 使用重定向 单独域名访问 问题描述 现在的企业服务,往往不是单体的,同时可能涉及中间件的访问如dubbo.solr.mq等.对于中间件的监控页面 ...

  2. nginx反向代理nexus私服

    没有更新博客经常博客已经很长时间了,记得刚毕业的时候经常试着写或者抄写记录一些好的博文.进步是由于有了分享和记录,从今天开始恢复心态开始勤奋的学习,把学习的点滴记录到博客中.希望得到大家的指点和大家一 ...

  3. 容器化单页面应用中Nginx反向代理与Kubernetes部署

    在<容器化单页面应用中RESTful API的访问>一文中,我介绍了一个在容器化环境中单页面应用访问后端服务的完整案例.这里我将继续使用这个案例,介绍一下容器化单页面应用部署的另一个场景: ...

  4. Nginx反向代理的配置

    一.引言 最近搞个服务器,然后部署了个人网站,以及一些服务供自己玩耍,其中Nginx最让我很难受,配置总是要现用现百度.所以,我来了,咳咳,我带来了一些​常用的配置.​需要有 Linux 和 Ngin ...

  5. nginx 反向代理及负载均衡策略

    正向代理:代理服务器对客户端的进行代理 反向代理:代理服务器对http服务器做代理 代理服务 先用社会生活中我们常见的场景解释一下代理: 租房代理 or 中介 很多有房人士想将自己闲置的房子出租,但是 ...

  6. Nginx反向代理与负载均衡应用实践

    本链接转载自:https://www.cnblogs.com/chensiqiqi/p/9162926.html 仅供自学使用. 1.1 集群简介 简单地说,集群就是指一组(若干个)相互独立的计算机, ...

  7. nginx反向代理原理讲解

    一 .概述                  反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器:并将从服务器上得到的结果 ...

  8. nginx反向代理,负载均衡

    nginx 反向代理(Reverse Proxy)是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户 ...

  9. Nginx反向代理以及负载均衡配置

    一 .nginx 的优缺点: nginx 相对 apache 的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则 ...

最新文章

  1. Hashtable和HashMap的区别:
  2. 蒙特卡罗方法验证凯利公式
  3. 解剖SQLSERVER 第四篇 OrcaMDF里对dates类型数据的解析(译)
  4. 国立大学 计算机,新加坡国立大学 计算机
  5. Python爬虫速度很慢?并发编程了解一下吧
  6. 青蛙跳台阶(C、Python)
  7. 如何利用GitHub Pages快速构建免费网站?
  8. 腾讯裁员内幕:顶层反思推动,PCG与CSIG影响最大
  9. Java物联网中间件_物联网中间件技术——Niagara介绍.pdf
  10. matlab中的index函数的使用方法,index函数语法说明及应用实例
  11. 海外几大移动游戏市场,各自有什么特点?如何选择正确的营销方式?
  12. 微信群发消息无限制解决方案
  13. Java化小数为分数_杭电oj1717——小数化分数(java实现)
  14. Fusion App2.0将网页转app,最简教程
  15. linux切割日志方法,Linux下nginx生成日志自动切割的实现方法
  16. 面向削峰填谷的电动汽车多目标优化调度策略 代码主要实现了考虑电动汽车参与削峰填谷的场景下,电动汽车充放电策略的优化,是一个多目标优化
  17. [C++]深复制与浅复制
  18. 【自动驾驶】视觉与毫米波雷达数据融合技术
  19. 用Java代码实现双色球彩票
  20. 贝塔自助授权系统php源码,PHP授权源码

热门文章

  1. html 老人机可以播放吗,宏强数字能量:通过手机号码看老年人身体健康
  2. HashMap、LinkedHashMap、TreeMap的深入认识
  3. 曼昆宏观经济学第8版笔记及课后答案
  4. 网络文化与伦理【0948】
  5. 什么是看门狗(watchdog)
  6. php命名空间非限定名称,PHP命名空间 - osc_nnp3dgfb的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. 无心剑英译紫穗穗《熵》
  8. 国内低代码开发平台发展现状
  9. 系统奔溃了别慌,尝试 DISM.exe 工具修复
  10. 一劳永逸让windows 64位操作系统 禁止强制驱动签名