1.反向代理
- 反向代理服务器位于客户端与目标服务器之间
- 用户以为代理服务器就是目标服务器
- 用户并不需要知道谁是目标服务器
- 反向代理服务器保护了真实服务器的信息
- 反向代理就是服务端的代理
- 代理服务器可以作为目标服务器的前置机来降低网络与服务器的负载
2.正向代理
- 正向代理服务器位于客户端与服务端之间
- 客户端在发起请求时,确定了目标服务器的地址
- 服务端不清楚哪台客户端正在访问我
- 正向代理是客户端代理
3.Nginx
3.1Nginx介绍
3.2特点
- 内存小,不超过2M, tomcat启动占用内存大概300-500
- Tomcat 每秒钟/150-220次 Nginx 每秒钟/3-5万次
- Nginx的C语言写的
3.3Nginx安装以及下载
学习资料网: nginx.org/en/download.html
3.4Nginx安装注意事项
- Nginx服务器启动占用的80端口
- Nginx服务器安装路径不要出现中文,不要出现空格,C盘慎用
- 计算机的名称如果是中文,最好改成洋文
- Nginx是C语言的开发,注释用#号
- Nginx服务器启动的速度特别快,窗口只会闪退, 只启动一次即可
3.5 Nginx命令
启动命令: start nginx(启动过后不要再重复执行,多余的在任务管理器中进行关闭)
重启命令:nginx -s reload(-s 代表同时关闭主线程和守护线程)
关闭命令:nginx -s stop
4.入门案例(通过域名访问磁盘中的图片)
1.修改hosts文件(C:\Windows\System32\drivers\etc )
说明:操作系统为了开发人员方便测试,提供了一个hosts文件,可以通过hosts文件执行文件的域名与IP做映射关系,如果配置了hosts文件,则先走hosts文件再执行全球的DNS解析服务
在hosts文件中进行配置
cmd 窗口通过管理员进行运行 然后cd C:\Windows\System32\drivers\etc
进行编辑 notepad hosts
127.0.0.1 www.image.com
2.在nginx.conf目录下进行配置
server{
listen 80;
server_name www.image.com;
location / {
root E:/pic;
index 123.png;
}
目录解析
#一个server代表一个反向代理的服务 可以配置多个server
server {
#监听(拦截)的端口号 80
listen 80;
#监听的域名
server_name localhost;#charset koi8-r;
#access_log logs/host.access.log main;#执行反向代理的动作 / 表示拦截所有路径
location / {
#root表示代理的是一个目录 html目录
root html;
#默认跳转的页面
index index.html index.htm;
}
3.启动nginx
start nginx
4.访问 www.image.com
补充 Nginx服务进程说明:
内存占用大的是主进程,内存占用小的是守护进程
主进程:主要提供反向代理服务
守护进程:为防止主进程意外关闭
5.将项目进行nginx代理
1.配置hosts文件
127.0.0.1 www.db.com
2.进行nginx.conf配置
server{
listen 80;
server_name www.db.com;
location / {
proxy_pass http://localhost:8081/doIndexUI;
}
}
3.访问
www.db.com
先启动项目----》启动nginx---->进行访问www.db.com
6.实现nginx集群配置
127.0.0.1 www.cms.com
开启jar====>通过tomcat开启====>nginx ====> 网址
#集群实现
server{
listen 80;
server_name www.cms.com;
location / {
#tomcats集群名字
proxy_pass http://tomcats;
}
}
#定义集群
upstream tomcats{3.iphash
#ip_hash
1.默认轮询
#server 127.0.0.1:8084;
#server 127.0.0.1:8085;
#server 127.0.0.1:8086;
2.权重
server 127.0.0.1:8084 weight=6;
server 127.0.0.1:8085 weight=2;
server 127.0.0.1:8086 weight=2;
}
1.关于Nginx负载均衡策略说明
- 轮询策略: 根据配置文件的顺序,依次访问服务器,该策略也是默认的策略
- 权重策略 场景假设:由于服务器新旧不同,硬件版本不同,导致服务器处理请求能力不同,依然采用轮询策略,则会出现严重的负载不均衡,所以我们需要通过权重的方式来平衡并发压力
- IPHASH策略
需求:当某一些业务需要用户访问特定的服务器时,就需要用到IPHASH机制
2.Nginx其他属性说明:
1.down属性
业务说明: 由于后台服务器宕机,可能没有及时去修改nginx.conf,用户访问出现卡顿的现象
属性说明:由于后台服务器宕机之后,需要通过down属性进行标识,nginx不会将请求发往故障机
upstream tomcats{
server 127.0.0.1:8084 down;
server 127.0.0.1:8085 ;
server 127.0.0.1:8086 ;
}
2.Backup属性:
说明: backup是用来标识备用机,当服务器全部宕机以后才启用备用机
upstream tomcats{
server 127.0.0.1:8084 ;
server 127.0.0.1:8085 ;
server 127.0.0.1:8086 backup;
}
3.Tomcat高可用机制
当tomcat服务器发生宕机现象时,由nginx自己去判断服务器是否可用,如果发现服务器宕机,则自动标识为down