1. 代理机制
1.1 反向代理和正向代理
1.1.1 反向代理
- 业务说明:在业务中图片如果需要向外展现,则需要通过网络虚拟机地址进行访问
虚拟路径:http://images.com/2020/07/15/39273012018237232.jpg
磁盘路径:D:/images/2020/07/15/39273012018237232.jpg
为了让所有用户都能访问的到图片信息,则准备虚拟机地址,并且实现虚拟机与本地磁盘之间的映射关系,该功能采用反向代理技术实现. - 反向代理说明
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定,反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率.
总结:
1).反向服务器位于目标服务器与用户之间.
2).对于用户而言,反向代理服务器就是目标服务器.
3).用户访问时根本不清楚真实的服务器资源时谁,保护了真实服务器资源信息.
4).反向代理服务器一般是服务器端代理,保护真实服务器信息.
1.1.2 正向代理
正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端,客户端才能使用正向代理.
- 代理服务器位于用户与服务器之间
- 用户发起请求时,清楚的知道自己访问的真实服务器是谁
- 代理服务器将用户的请求转交给服务器获取数据
- 正向代理是客户端代理,报货了用户的信息.
一般用户网络通信的使用(路由器)
2. NGINX
2.1 nginx的介绍
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少(不到2M),并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
并发能力强: 3-5万次/秒 理想环境下 /tomcat服务器 150-220/秒
2.2 关于NGINX进程项的说明
Nginx每次启动时会生成2个进程项
1).主进程 : 主要提供nginx反向代理服务
2).守护进程 : 防止主进程意外关闭
如果需要关闭Nginx,则应先关闭守护进程,再关闭主进程
2.3 Nginx的基本命令
前提条件:要求在nginx的根目录下执行
规范: 启动nginx之后,执行nginx的重启指令,检查是否有异常
启动nginx start nginx 即使启动不成功,也不会报错.
重启nginx nginx -s reload 如果配置文件编辑异常,则会显示报错信息
停止nginx nginx -s stop
3. Nginx 反向代理入门案例
http{
server {
listen 80; # 监听端口号
server_name localhost; # 监听的服务名称
# 反向代理的配置,获取用户指定的请求之后,将请求转向到什么位置
# / 请求访问的目录
location / {
# root 关键字 反向代理文件目录
root html;
# index 关键字 默认跳转页面
index index.html;
}
}
}
3.1 反向代理效果
4. 商品图片的回显
4.1 业务分析
url地址: http://image.jt.com/2020/07/11/39ff8758-57bb-4452-bf29-db6061fff24a.jpg
磁盘地址: **D:\JT-SOFT\images/**2020/07/11/39ff8758-57bb-4452-bf29-db6061fff24a.jpg
利用nginx服务器实现反向代理机制, 当用户访问http://image.jt.com时 要求跳转到路径 D:\JT-SOFT\images\
4.2 编辑Nginx的配置文件
说明:修改nginx配置文件之后,要重新启动nginx
# 配置图片服务器代理
server {
listen 80;
server_name image.jt.com;
location / {
#映射到目录中
root D:\JT-SOFT\images;
}
}
4.3 网络访问链路说明
HOSTS文件记录了本机访问的域名与IP的映射关系
4.4 编辑HOSTS文件
4.5 利用switchHosts编辑文件
4.6 修改hosts文件权限
5. 实现域名代理
5.1 业务需求
要求: 用户通过http://manage.jt.com:80 访问localhost:8091服务器.
5.2 反向代理-服务器域名代理
# 配置域名代理
server {
listen 80;
server_name manage.jt.com;
location / {
#代理的是服务器地址
proxy_pass http://localhost:8091;
}
}