文章目录
- 代理
- 正向代理
- 反向代理
- 负载均衡
- Nginx
- 安装
- Http
- 反向代理
- 负载均衡
代理
概念:
计算机中的一种概念,一般指代码设计方式,如AOP动态代理,或者物理层访问方式,如代理服务器
AOP的原理是动态代理,通过对目标类的代理,完成功能代码的织入。
- 静态代理,可在编译阶段对目标类织入增强代码;代码实现
- 典型有JDK静态代理和AspectJ
- 动态代理,在程序运行过程中,动态地为目标类织入增强代码;反射实现
- 典型有JDK动态代理和CGLib
代理服务器目的:
- 隐藏访问者身份,伪装请求
- 访问不能够访问的地址或服务器
正向代理
概念:
举例:小明妈妈告诉小明,你去村东头第一家小卖店买一瓶 酱油,买完回来给妈妈了。小明非常听妈妈的话,绝不去村东头第二家。
对于小明这个代理来说就是正向代理,也就是说发起者(小明妈妈) 知道代理者(小明)的目的地在哪里。
应用:
-
翻墙
国内访问国外的google是访问失败的,因为有防火墙就给你拦截下来了,那我想访问国外的google网站就需要翻墙,
GFW防火墙策略 并不是说所有国外的网站都拦截,只是拦截一些热点网站,所以翻墙者可以在国外租一台服务器A,
这个国外的服务器A在国内是可以直接访问的,然后翻墙者就可以通知服务器A来帮我访问google。
这个服务器A就属于正向代理,对于发起者知道这个代理服务器A要访问的目的地网站是哪里。
反向代理
概念:
举例:小明妈妈告诉小明,你去给我买瓶酱油,去哪儿买我不管,小卖店有很多,村东头,村西头的,村北头的。
妈妈是不知道小明去哪儿买的。
对于小明这个代理来说就是反向代理 不知道代理者(小明)的目的地在哪里。
**作用:**安全,防止使用者直接访问服务器,对于使用者并不知道访问的是哪一个服务器
应用:
-
网关
所有请求我们都是通过网关,所有请求都通过网关,我们根据服务名请求就可以,就可以请求到服务,
至于网关请求的是指定服务的哪个集群,我们是不知道的。
也就是说访问者并不知道代理者 (网关) 要访问的目的地在哪里。
提到反向代理就必须提到负载均衡, 当你用到反向代理技术就一定会用到负载均衡。
http://192.168.1.191:9999/collection/find[外链图片转存中…(img-P5AIvdzz-1734851470610)]
[外链图片转存中…(img-EJNhWhCO-1734851470611)]
负载均衡
概念:
负载均衡*(Load Balance)*其意思就是分摊到多个操作单元上进行执行,
例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
负载均衡策略:轮询(Round Robin)策略
所有请求都通过网关,当并发量达到一定量级的时候,网关也需要做集群,网关的负载均衡谁去做呢?
Nginx
安装
-
下载:
官网
wget http://nginx.org/download/nginx-1.20.2.tar.gz
-
解压并创建文件夹
tar -zxvf nginx-1.20.2.tar.gz
mkdir /usr/local/nginx
-
安装C编译器
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
-
初始化配置
nginx-1.20.2> ./configure --prefix=/usr/local/nginx
-
编译和安装
make & make install
-
启动nginx
cd sbin
./nginx # ./nginx -s reload # 重启服务
http://192.168.56.3/
Http
Nginx本身也是一个静态资源的服务,当只有静态资源的时候,就可以使用Nginx来做服务器
/usr/local/nginx/conf/nginx.conf
location / { root html; # http://192.168.56.3/index.html 代表跟目录是html文件夹index index.html index.htm; # 默认访问的主页是index.html}# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}
反向代理
案例演示:
使用nginx访问不同的服务器,两个网站,不同服务器
[外链图片转存中…(img-jy6I3zLE-1734851470611)]
-
修改本机hosts配置文件
vim /etc/hosts
192.168.56.3 a.codingfuture.com # 192.168.56.3 为部署nginx服务器操作系统的ip地址 192.168.56.3 b.codingfuture.com
-
vim conf/nginx.conf
server {listen 80;server_name a.codingfuture.com;location / {proxy_pass http://192.168.18.235:8080/;index index.html index.htm;}}server {listen 80;server_name b.codingfuture.com;location / {proxy_pass http://192.168.18.235:8088/;index index.html index.htm;}}
-
重启nginx服务
sbin/nginx -s reload
-
访问
http://a.codingfuture.com/test
负载均衡
Tomcat的QPS在3000左右,为了提高并发量,使用nginx做负载均衡配置,一个网站,俩个服务器,做集群,高可用。
向配置文件中添加如下配置
upstream a-server {server 192.168.18.235:8080 weight=2;server 192.168.18.235:8088;}server {listen 80;server_name a.codingfuture.com;location / {proxy_pass http://a-server;index index.html index.htm;}}