Nginx的反向代理配置

1)导入自定义配置

打开nginx.conf文件,然后在文件的最后一行的}上面引入配置:

include vhost/*.conf;

这个配置的意思是 导入 vhost目录下的所有以.conf为后缀的文件。这样可以做到多配置文件分离,方便管理。

现在,我们需要在conf目录中新建一个名为vhost的目录:

并在vhost中创建配置文件,这里我们叫myConfig.conf

myConfig.conf中写入下面配置:

server {
	listen       80;
	server_name  url-1;
	
	location / {
	    proxy_pass   http://127.0.0.1:9001;
		proxy_connect_timeout 600;
		proxy_read_timeout 5000;
	}
}
server {
	listen       80;
	server_name  url-2;
	
	location / {
	    proxy_pass   http://127.0.0.1:9002;
		proxy_connect_timeout 600;
		proxy_read_timeout 5000;
	}
}
server {
	listen       80;
	server_name  url-3;
	
	location / {
	    proxy_pass   http://127.0.0.1:10010;
		proxy_connect_timeout 600;
		proxy_read_timeout 5000;
	}
}

配置解读:

  • server:定义一个监听服务配置
    • listen:监听的端口
    • server_name:监听的域名,端口一致,域名不同也不会处理
    • location:匹配当前域名下的哪个路径。例如:/,代表的是一切路径
      • proxy_pass:监听并匹配成功后,反向代理的目的地,可以指向某个ip和port
      • proxy_connect_timeout:反向代理后的连接超时时间
      • proxy_read_timeout:反向代理后的读取超时时间

负载均衡

我们的nginx反向代理,目标服务器地址是通过IP和Port来指定,那么新的问题来了:

如果我们的url不是单节点,而是一个服务集群

此时该怎么办呢?nginx该如何配置访问集群中的哪个节点呢?

这就需要负载均衡的策略配置了。

1)负载均衡轮询策略

首先定义负载均衡的集群节点信息,及负载均衡的策略,默认策略是轮询,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动剔除,本例中配置四个节点轮询:

# 负载均衡配置,默认是轮询
upstream my-balancing{
	server	127.0.0.1:9001; # 节点信息
    #server	127.0.0.1:9002; # 节点信息
    #server	127.0.0.1:9003; # 节点信息
    #server	127.0.0.1:9004; # 节点信息
}

然后在反向代理时不要指向具体IP,而是这里配置的:my-balancing

server {
	listen       80;
	server_name  url;
	
	location / {
	    proxy_pass   http://my-balancing;
		proxy_connect_timeout 600;
		proxy_read_timeout 5000;
	}
}

2)加权轮询

指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机器性能不统一,将性能好的分配权重高来发挥服务器最大性能,如下配置后9001服务的访问比率会是9002服务的二倍。

# 负载均衡配置,默认是轮询
upstream my-balancing{
	server	127.0.0.1:9001 weight=1; # 节点信息
    server	127.0.0.1:9002 weight=2; # 节点信息
}

3)IP哈希

每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务

upstream  my-balancing {
    ip_hash; 
	server	127.0.0.1:9001; # 节点信息
    server	127.0.0.1:9002; # 节点信息
}

4)最少连接

将请求分配到连接数最少的服务上。

upstream my-balancing{
    least_conn;
	server	127.0.0.1:9001; # 节点信息
    server	127.0.0.1:9002; # 节点信息
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值