通过Nginx学习反向代理

本文详细解析了Nginx作为反向代理服务器的作用及配置方法,包括代理概念、正向与反向代理的区别、Nginx安装与常用命令、配置文件结构,以及如何通过Nginx实现负载均衡。

前情提要

反向代理并不是科学上网,文中的相关配置都是从正规网站学习而来,我是个守法爱国的好公民

本篇文章参考博文

1.什么是代理

  举个通俗易懂的例子,大家都有过去专卖店买鞋的经历吧,商场里面各种品牌的专卖店里有各种各样的鞋子,这些鞋子是厂家生产的,专卖店就是厂家的代理。
在这里插入图片描述

2,为什么需要代理

  我们很少有人直接去厂家买鞋,都是通过专卖店来进行购买,了解专卖店就可以了解代理,总结一下为什么需要专卖店。

  1. 厂家的位置都比较偏远,有的甚至在国外,客户不方便直接访问。( 跨域问题
    在这里插入图片描述

  2. 客户想要很多双鞋,都交给一个厂子做,时间太长不说,超负荷运转又可能使厂子里的工人罢工,这个时候需要交给多个厂子来做,让客户去联系好几个厂家又不方便,那就需要专卖店介入,作为几个厂家的枢纽,客户只要下单就行,剩下的事交给专卖店。( 负载均衡
    在这里插入图片描述

  3. 厂家是负责生产的地方,大部分地方是用来生产产品的,接待少数顾客还行,如果有很多顾客一块来买东西,就有点接待不过来,需要专卖店来负责接待顾客,厂家只负责生产,发货就行。( 高并发

在这里插入图片描述

3.正向代理

  正向代理类似去买衣服,买鞋,顾客清楚的知道,这里的所有商品,不是商店生产的,而是厂家生产出来的,放到专卖店进行销售,顾客清除的知道,商品产自哪里,是进口的,还是国产的。
在这里插入图片描述
  此时请求源是客户端,具体请求的是哪台服务器也很明确。

4.正向代理的用途

  访问原来无法访问的资源。可以做缓存,加速访问资源。对客户端访问授权,上网进行认证。代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息。

5.反向代理

  反向代理类似去饭店吃饭,顾客不知道到底是谁把饭菜做出来的,反正点了就能上菜。
在这里插入图片描述
在这里插入图片描述
  此时,请求源是客户端,很明确,但是请求具体发送到哪个服务器上了,客户端并不知道。 Nginx 扮演的就是一个反向代理。客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。

6.反向代理作用

  保证内网的安全,通常将反向代理作为公网访问地址,Web 服务器是内网。负载均衡,通过反向代理服务器来优化网站的负载。

7.Nginx安装

  所需文件
在这里插入图片描述
  安装步骤

——安装 pcre

1.解压缩 tar -zxvf pcre-8.44.tar.gz
2.进入 pcre 解压目录 执行 ./configure
3.执行 make && make install
4.安装完成,使用命令查看版本号 pcre-config --version

——安装 openssl
——安装 zlib

yum -y install make zlib zlib-devel gcc-c++ libtool openssl opensssl-devel
——安装 nginx

1.解压缩 tar -zxvf nginx-1.18.0.tar.gz
2.进入目录 ./configure
3.执行 make && make install
4.安装成功,在/user/local有nginx目录,nginx目录下sbin有启动脚本
5.启动测试
6.关闭防火墙 systemctl disable firewalld
7.访问ip:80

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.Nginx常用命令

——以下命令需要在/usr/local/nginx/sbin目录下执行

1.启动命令:./nginx 

2.关闭命令:./nginx -s stop 

3.重新加载命令:./nginx -s reload

4.查看版本:./nginx -v

9.Nginx配置文件(/usr/local/nginx/conf/nginx.conf)

  该配置文件分为三个模块
在这里插入图片描述

9.1配置文件—全局块

  主要会设置一些影响 Nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。 例如下面这个配置。
在这里插入图片描述
  这是 Nginx 服务器并发处理服务的关键配置, worker_processes 值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约 。

9.2配置文件—events块

   events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 worker_processes 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 worker_processes 可以同时支持的最大连接数等。
在这里插入图片描述
  上图表示每个 worker_processes 支持的最大连接数为 1024.。

  这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。

9.3配置文件—http块

  这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。
需要注意的是: http 块也可以包括 http全局块 server 块

9.3.1配置文件—http块—全局块

   http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。

9.3.2配置文件—http块—server块

  这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。

  每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。 而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。

  • 1、全局 server 块
      最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或IP配置。
  • 2、location 块
      一个 server 块可以配置多个 location 块。 这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是IP别名)之外的字符串(例如 前面的 /uri-string)进行匹配,对特定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

10.Nginx配置—反向代理(一)

  实现效果:使用 Nginx 反向代理,访问 Nginx 直接跳转到 127.0.0.1:8080,配置如下。

  • 准备 springboot 程序
  • 配置 nginx
  • 重启 nginx -s reload
  • 访问 nginx ip 端口
    在这里插入图片描述

10.Nginx配置—反向代理(二)

  实现效果:使用 Nginx 反向代理,根据访问的路径跳转到不同端口的服务中,Nginx 监听端口为 9001,

  • 访问http://127.0.0.1:9001/edu/直接跳转到127.0.0.1:8080
  • 访问http://127.0.0.1:9001/vod/直接跳转到127.0.0.1:8081

  配置如下
在这里插入图片描述
  上文简单介绍了以下反向代理的配置过程, Nginx 还有一个优秀之处,负载均衡,戳下面这篇文章哦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值