代理
反向代理
用户发起正常的url请求地址,经过代理将路径进行转化,代替用户去请求真实资源的过程.称之为反向代理。
正向代理
正向代理(forward proxy): 是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端。代理的是客户端。
Nginx介绍
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
Nginx官网:https://nginx.org/en/download.html
Nginx安装
将nginx安装文件导入本地磁盘要求,不要放置C盘/不要有中文路径.之后将文件解压.
注意事项:
- nginx启动会占用80端口!!!
如果启动异常 请检查tomcat环境变量配置.
高级系统设置 path路径中检查tomcat是否配置. - Nginx只能启动一次.不能多次启动.如果启动多次.则nginx之前正常的启动将被破坏. 启动/关闭.
Nginx启动说明
起步阶段
第一次启动时以超级管理员身份运行.目的获取权限.
关于进程项说明
- 说明:每次启动nginx都会启动2个进程.
- 守护进程:防止主进程意外关闭.
- 主进程: nginx主要服务项.
- 手动关闭方式: 先关闭守护再关闭主进程.
Nginx命令
前提:命令执行时需要在nginx的根目录中运行!!!
- 启动命令 start nginx
- 关闭命令 nginx -s stop
- 重启命令 nginx -s reload 必须先开再重启
Nginx反向代理配置
入门案例
server {
listen 80; #要求监听80端口
server_name localhost; #监听域名
#具体反向代理的配置信息
location / {
#root是关键字 代表文件夹
root html;
#index是关键字 代表系统默认访问页面
index index.html index.htm;
}
}
实现本地图片的反向代理
需求:将域名为image.jt.com----转化为具体文件路径D:\1-JT\images
-
编辑nginx配置文件:
#1.图片服务器
server {
listen 80;
server_name image.jt.com;location / { #代理路径 root D:/1-JT/images; } }
-
遇到问题
因为image.jt.com这个域名我们没有购买.如果只有本机自己测试时使用.则可以通过修改hosts文件实现该功能.
关于Hosts文件说明
说明:由于本机需要某些特定的环境作为测试.
则一般在hosts文件中配置域名与IP的映射关系.
文件路径: C:\Windows\System32\drivers\etc
修改hosts文件
#127.0.0.1 localhost
127.0.0.1 www.164.com
127.0.0.1 image.jt.com
127.0.0.1 manage.jt.com
127.0.0.1 www.jt.com
127.0.0.1 sso.jt.com
127.0.0.1 cart.jt.com
127.0.0.1 order.jt.com
Nginx实现负载均衡
轮询策略
说明:根据配置文件顺序,依次访问tomcat服务器.
#准备tomcat_windows集群 默认:轮询策略
upstream jtWindows {
server localhost:8091;
server localhost:8092;
server localhost:8093;
}
#配置后台管理服务器
server {
listen 80;
server_name manage.jt.com;
location / {
#代理服务器路径
proxy_pass http://jtWindows;
}
}
权重策略
说明:根据物理服务器配置,让高性能服务器尽可能多分配请求.
配置信息:
#准备tomcat_windows集群 默认:轮询策略 2.权重策略
upstream jtWindows {
server localhost:8091 weight=6;
server localhost:8092 weight=3;
server localhost:8093 weight=1;
}
IPHASH策略
说明:使用IPhash可以将用户与服务器绑定.实现了数据的共享
但是:一般很少使用.做测试或者小规模使用可以.大型公司禁止使用.
配置步骤:
#准备tomcat_windows集群 默认:轮询策略 2.权重策略 3.了解 IPhash策略
upstream jtWindows {
ip_hash;
server localhost:8091 weight=6;
server localhost:8092 weight=3;
server localhost:8093 weight=1;
}
缺点:
1.如果后台服务器宕机.则影响部分用户无法访问服务器.
2.使用iphash会造成严重的负载不均现象.
Nginx运维配置项
down属性
问题说明:当nginx实现负载均衡时,当后台服务器宕机,则nginx会等待超时时间.之后访问下一台服务器.但是每次周期都会去访问故障机.
属性说明:
down表示标识故障机.nginx如果遇到用down标识的服务器.则永远不会访问该机器.
upstream jtWindows {
#ip_hash;
server localhost:8091 down;
server localhost:8092;
server localhost:8093;
}
backup属性
说明:backup表示备用机机制.正常情况下该机器不参与用户的访问.留作备用.当服务器全部宕机或者主服务器遇忙时.
upstream jtWindows {
#ip_hash;
server localhost:8091 down;
server localhost:8092 down;
server localhost:8093 backup;
}
健康检查/心跳检测
说明:tomcat服务器如果正常可以抗击高并发.如果服务器宕机.则受一定的影响.这时采用备用机可以抗击压力.
问题:备用机要想生效必须满足down标签. 服务之后需要人为的添加down属性.
属性介绍:
max_fails=1: 表示用户发起请求时链接不到服务器表示失败.
fail_timeout=60s 如果服务器访问失败次数1次之后则在60秒内不会再访问故障机.
proxy_connect_timeout 2; #服务器链接超时时间
proxy_read_timeout 2; #读取服务器资源超时时间
proxy_send_timeout 2; #向服务器发送资源的超时时间
使用说明:
nginx健康监测是为了在没有程序员表示down属性时,引起频繁访问故障机的情况.当服务器宕机.只需要影响用户2秒之后,在指定的周期中不会再次访问故障机.提升用户体验.