一 反向代理机制
(一)什么是反向代理?
总结:
1.反向代理服务器位于目标服务器与用户之间.
2.对于用户而言,反向代理服务器就是目标服务器.
3.用户访问时根本不清楚真实的服务器资源是谁,保护了真实服务器资源信息.
4.反向代理服务器一般是服务器端代理,保护真实服务器信息.
(二)正向代理(知识补充)
知识点:
1.代理服务器位于用户与服务器之间
2.用户发起请求时,清楚的知道自己访问的真实服务器是谁.
3.代理服务器将用户的请求转交给服务器获取数据.
4.正向代理是客户端代理,保护了用户的信息.
二 Nginx
(一)Nginx介绍
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器
内存: 不到2M
并发能力强: 3-5万次/秒 理想环境下 /tomcat服务器 150-220/秒
(二)Nginx安装(下载Linux版本)
1.Nginx安装路径不要放到C盘 要求路径中不能有中文+空格------职业操作
2.要求以超级管理员的权限 启动nginx服务器. 动态获取权限.
3.检查任务管理器 查看是否有nginx服务项
4.80端口被PID=4的编号占用
https://jingyan.baidu.com/article/b7001fe1d6e9370e7382dd43.html
(三)Nginx命令
Nginx每次启动时会生成2个进程项
1.主进程: 主要提供nginx反向代理服务的.
2.守护进程 防止主进程意外关闭的.
如果需要关闭nginx,则应该先关闭守护进程,再关闭主进程.
命令的运行
1.前提条件: 要求在nginx的根目录中执行,进入安装目录,cmd窗口启动。
2.规范: 启动nginx之后,执行nginx的重启指令,检查是否有异常.
(1) 启动nginx start nginx 即使启动不成功,也不会报错!!!!所以通过重启检查是否异常
(2)重启nginx nginx -s reload 如果配置文件编辑异常,则会显示报错信息
(3)停止nginx nginx -s stop
(四)Nginx 反向代理入门案例
http {
server {
listen 80; # 监听端口号
server_name localhost; # 监听的服务名称
#反向代理的配置,获取用户指定的请求之后,将请求转向到什么位置
# / 请求访问的根目录
location / {
# root关键字 反向代理文件目录
root html;
# index关键字 默认跳转页面
index index.html index.htm;
}
}
}
(五)商品图片回显实现
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\
2.编辑Nginx的配置文件,实现域名和本地文件目录的映射
a.文件位置(nginx-1.19.1/conf/nginx.conf)
b.文件编辑
/ 和 root 关键字
# 配置图片服务器代理 个别windows中"_-"字符可能不识别
server {
listen 80;
server_name image.jt.com;
location / {
#映射到目录中
root D:\JT-SOFT\images;
}
}
c.编辑完之后重启 nginx -s reload
3.网络访问链路说明
4.利用switchHosts软件编辑HOSTS文件,位置C:\Windows\System32\drivers\etc\hosts
# 京淘环境配置
127.0.0.1 image.jt.com
127.0.0.1 manage.jt.com
127.0.0.1 www.jt.com
127.0.0.1sso.jt.com
5.修改hosts文件权限
(六)实现域名代理
要求: 用户通过http://manage.jt.com:80 访问localhost:8091服务器.
# 配置域名代理
server {
listen 80;
server_name manage.jt.com;
location / {
#代理的是服务器地址
proxy_pass http://localhost:8091;
}
}
三 Nginx负载均衡策略
(一)什么是负载均衡?
说明:在分布式条件下,为了提高用户请求的响应能力,准备多台服务器.一起抗击高并发.需要用户通过同一个网址访问不同服务器的技术称之为负载均衡机制.
(二)准备多台tomcat服务器
1.项目打包
需求:准备3台tomcat服务器,并且端口号依次为8081/8082/8083,之后完成项目Windows部署.
在sts软件中右键jt目录,run as ->maven install,后两次直接右键jt-manage目录,run as ->maven install。
在target目录下找到打好的war包,复制走并改名。
2.项目发布
在3个war包所在目录下3次进入cmd窗口,依次执行java -jar 808X.war指令。
发布后在浏览器中依次访问localhost:8081、localhost:8082、localhost:8083。
如果浏览器访问速度较慢(不正常),直接关闭当前dos命令窗口,或者 ctrl + c 方式 释放资源.
(三)Nginx实现负载均衡
1.需求:通过http://manage.jt.com 方式 ,刷新时依次访问8081/8082/8083服务器.
2.负载均衡策略----轮询
说明: 根据配置文件的顺序,依次访问tomcat服务器.
# 配置域名代理
server {
listen 80;
server_name manage.jt.com;
location / {
#代理的是服务器地址
#proxy_pass http://localhost:8091;
proxy_pass http://jtW;
}
}
#定义多台tomcat服务器 1.轮询策略
upstream jtW {
server localhost:8081;
server localhost:8082;
server localhost:8083;
}
3.负载均衡策略----权重
权重策略: 让性能更优的服务器更多的处理请求.
#定义多台tomcat服务器 1.轮询策略 2.权重策略
upstre