前情提要
反向代理并不是科学上网,文中的相关配置都是从正规网站学习而来,我是个守法爱国的好公民
本篇文章参考博文
1.什么是代理
举个通俗易懂的例子,大家都有过去专卖店买鞋的经历吧,商场里面各种品牌的专卖店里有各种各样的鞋子,这些鞋子是厂家生产的,专卖店就是厂家的代理。

2,为什么需要代理
我们很少有人直接去厂家买鞋,都是通过专卖店来进行购买,了解专卖店就可以了解代理,总结一下为什么需要专卖店。
-
厂家的位置都比较偏远,有的甚至在国外,客户不方便直接访问。( 跨域问题 )

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

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

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 还有一个优秀之处,负载均衡,戳下面这篇文章哦
本文详细解析了Nginx作为反向代理服务器的作用及配置方法,包括代理概念、正向与反向代理的区别、Nginx安装与常用命令、配置文件结构,以及如何通过Nginx实现负载均衡。

927

被折叠的 条评论
为什么被折叠?



