Nginx/负载均衡

实现属性的动态赋值(本地磁盘目录+虚拟路径域名)

1.添加image.properties文件,并配置关于图片的信息
文件位置+内容
编辑FileServiceImpl实现虚拟路径配置设定属性动态赋值

	@Value("${image.localDirPath}")
    private String localDirPath;
    @Value("${image.urlPath}")
    private String urlPath; 

反向代理

反向代理位于用户输入的虚拟地址和目标服务器之间,但是对于用来说就是目标服务器,直接访问反向代理服务器就可以获取资源.反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
反向代理特点:
1.反向代理服务器位于用户和目标服务器之间.
2.反向代理服务器就相当于目标服务器,用户会以为反向代理服务器就是目标服务器
3.用户是通过反向代理服务器来获取资源,而不是直接真实服务器
4.反向代理是服务器端的代理,是为了保护真实的服务器信息;

反向代理特征:用户不知道真实服务器是谁

正向代理

正向代理是位于客户端和服务器之间的服务器,为的是保护客户端信息,所以他是一个客户端代理,为了从原始的服务器取得数据,客户端会像代理一个一个的发送请求并指定原始服务器,然后代理再将请求转交给原始服务器,并且将获得的数据返回客户端,客户端才能使用正向代理
正向代理特点:
1.代理服务器位于用户和服务器之间
2.用户发起请求之前已经知道目标服务器是谁的
3.用户通过代理服务器到指定的目标服务器获取资源
4.正向代理保护的是客户端信息,是客户端代理

总结

正向代理: 是客户端代理,保护的是客户端信息,用户清楚地知道目标服务器是谁
反向代理: 是服务器端代理,保护得是真实服务器的信息,用户不知道真实服务器是谁

Nginx

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器
特点: 占有内存少 不超过2M ,并发能力强 3-5万次/秒

Nginx下载:Nginx官网,下载适用于自己的版本

Nginx安装: 不要安装在C盘(系统盘)路径不要有中文 空格 包括系统目录

Nginx启动: 点击Nginx.exe自动后浏览器输入localhost:80来启动(出现欢迎页面即正常)

Nginx进程: Nginx有两条进程一条为主进程,一条为守护进程

Nginx操作命令: 执行Nginx的根命令时需要在nginx的根目录中进行,进入根目录后在地址栏输入cmd即可进入

启动命令: start nginx

重启命令: nginx -s reload

关闭命令: nginx -s stop

Nginx反向代理配置

1.首先找到配置文件
配置文件目录

Nginx反向代理配置说明

http {
	#http协议内,可以有多个服务 每个服务就是一个server
    server {
    	# 监听用户访问的端口   默认是80端口
        listen       80;   
        # server_name 服务名称  浏览器的访问域名
        server_name  localhost;
		#配置反向代理的实现  / 拦截所有的用户请求
        location / {
        	# root代表关键字   代表反向代理的目录
            root   html;
            # index 代表默认的访问页面
            index  index.html index.htm;
        }
      }
   }

配置Nginx图片服务器

需要数据: 本地磁盘地址+虚拟地址
注意: nginx -s reload 可以展现报错信息 start nginx不能
注意: 启动nginx后最好执行重启命令 nginx -s reload
配置虚拟地址 server_name
配置通过网址转向的指定目录

#配置图片服务器
	server {
		listen 80;
		server_name image.jt.com;

		##通过网址转向指定的目录  注意/的写法
		location / {
		
			root D:/JT-SOFT/images;
		}
	}

网络资源访问请求路径

说明:通过hosts文件可以配置域名与IP地址的映射.那么在本机中可以实现反向代理,如果将来想要在公网中进行反向代理.则必须购买域名,HOSTS文件配置域名只对本机有效,如果想在公网中进行反向代理
域名:IP映射关系

修改HOSTS文件

地址:windows: C:\Windows\System32\drivers\etc

利用软件来管理HOSTS文件我们使用: Switch Hosts

HOSTS文件配置格式: 右侧写域名 中间使用空格分隔 配置内容

配置jt项目中的域名:
本机IP - - - - 域名 中间空格

127.0.0.1    image.jt.com
127.0.0.1   manager.jt.com
127.0.0.1   www.jt.com
127.0.0.1   sso.jt.com

注意: 有些系统没有修改HOSTS文件的权限,可以右键属性为所有用户开放读写权限或者以管理员身份运行Switch Hosts软件

Nginx注意事项: 如果报错首先HOSTS文件,其次检查nginx配置文件,并重启nginx ,如果有多余的nginx进程需先关闭

Nginx负载均衡

Nginx负载均衡 当一台服务器访问量很大,服务器压力超过自身承受能力时服务器会崩溃,为了避免服务器崩溃可以使用负载均衡的方式分担服务器压力
负载均衡原理 可以建立很多服务器组成一个服务器集群,用户访问时先访问一个中 间服务器,然后让中间服务器在集群中选择一个压力较小的服务器,然后将此访问请求引入该服务器,以此平衡每个服务器的访问压力,分担压力

Nginx集群搭建

1.创建多台服务器
为了能在负载均衡访问时看到端口号先动态获取端口号(@Value动态赋值)

@RestController
public class PortController {

    //考点:动态复制操作
    @Value("${server.port}")
    private Integer port;
    @RequestMapping("/getPort")
    public String getPort(){
        return "当前访问的端口号:"+port;
    }

2.打包发布三台端口号不一样的服务器(clean- build----install)
在打好的war包下运行服务器(根目录+cmd),进入dos窗口后使用 java -jar XXX.war 运行’’

#配置集群  1.默认方式   轮询策略
	upstream jtWindows {
		server localhost:8081;
		server localhost:8082;
		server localhost:8083;
	}

Nginx负载均衡策略

1.轮询策略    默认
2.weight     权重策略
3.ip_hash    根据ip分配
4.least_conn 最少连接方式
5.url_hash   根据URL分配方式

nginx负载均衡参数

1. fail_timeout    与max_fails结合使用
2. max_fails		最大失败参数,访问服务器失败次数达到最大失败次数时,故障服务器在fail_time设置的时间内不会被访问
3. fail_time		服务器被认为停机的长度,默认为10s
4. backup 			标记改服务器为备用服务器,主服务器停止时,请求会被发送到这里
5. down   			代表服务器被永久宕机

down属性: nginx在不做任何的配置时,无法感知服务器是否正常运行.所有会频繁的访问故障机.
解决方案: 可以利用down属性 来标识故障机.
属性(备用机)
正常情况下一般服务器部署时需要准备几台服务器当做备用.正常的情况下该服务器不参与工作.只有当主机遇忙时/或者宕机时.该服务器才会工作.

轮询策略

默认的负载均衡策略,请求会按时间顺序分配到不同的后端服务器,轮询中如果服务down掉了会自动剔除该服务器

#商品管理服务器  监听的是用户 manager.jt.com:80  映射的是url地址
server {
		listen   80;
		server_name  manager.jt.com;
		#进行反向代理
		location / {
			#映射的url请求网址.
			#proxy_pass http://localhost:8091;
			proxy_pass  http://jtWindows;
		}  
	}
	#配置集群  1.默认方式   轮询策略
	upstream jtWindows {
		server localhost:8081;
		server localhost:8082;
		server localhost:8083;
	}

权重策略

根据服务器性能分配,服务器性能越高,承担的压力越高,weigh参数用于指定轮询几率,默认值为1,权重越高被访问的几率越大 ,

#配置集群  1.默认方式   轮询策略   2.权重策略 
	upstream jtWindows {
		server localhost:8081  weight=6;
		server localhost:8082  weight=3;
		server localhost:8083  weight=1;
	}

IP HASHA策略

需求: 有时在访问时可能会固定的访问某台服务器,将用户与服务器进行绑定,用户以后只能访问改服务器
ip_hash不能与backup同时使用。
当有服务器需要剔除,必须手动down掉。

#配置集群  1.默认方式   轮询策略   2.权重策略   3.IPhash策略
	upstream jtWindows {
		ip_hash;
		server localhost:8081  weight=6;
		server localhost:8082  weight=3;
		server localhost:8083  weight=1;
	}

Nginx高可用配置

目的: 当tomcat服务器宕机时,可以通过如下的配置,实现服务器的自动的切换.无需人为的干预.

配置信息:
fail_timeout=60s; 设定超时时间(定义一个周期)
max_fails=1 设定最大的访问失败次数.

PS:如果nginx访问某台服务器时,如果该服务器访问失败,失败的次数达到最大失败次数时.在60秒之内,nginx不会再次访问故障机.直到下一个周期.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值