• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Nginx专题:反向代理与负载均衡

互联网 diligentman 6天前 5次浏览

Nginx专题:反向代理与负载均衡

Nginx负载均衡概念

准确来说,Nginx是作为Nginx Proxy反向代理使用的,因为这个反向代理功能表现出负载均衡的效果,所以称之为Nginx负载均衡。
实现负载均衡的效果主要依赖两个组件:

  • ngx_http_proxy_module
  • ngx_http_upstream_module

前者是proxy代理模块,用于把请求传给服务器节点或upstream服务器池
后者是负载均衡模块,可以实现网站的负载均衡功能及节点的健康检查

upstream模块的使用方法

  • 基本的配置案例
upstream www_server_pools {
  server 192.168.1.1;
  server 192.168.1.2;
  server 192.168.1.3;
}
  • 较完整的配置案例
upstream www_server_pools {
  server 192.168.1.1:80 weight=1;
  server 192.168.1.2:80 weight=2;
  server 192.168.1.3:80 weight=2 max_fails=1 dail_timeout=10s;
}
  • 使用域名的配置案例
upstream backend {
  server backend1.yyang.com weight=3;
  server backend2.yyang.com:8080;
  server unix:/tmp/backend3;
}

upstream模块说明

  • server 192.168.1.1:80 #可以是ip也可以是域名
  • weight=1 #权重值,默认为1,数越大接受的请求比例越大
  • max_fails=1 #尝试连接后端主机失败的次数
  • backup #热备配置
  • fail_timeout=10s #距离下次检查的时间

http_proxy_module模块

  • proxy_pass指令

通过location将符合匹配的请求抛给定义好的upstream节点池。

  • proxy_pass案例
location / {
  proxy_pass http://www_server_pools;
}

一个完整的案例

worker_processes	1;
events {
	worker_connections	1024;
}
http {
	include		mine.types;
	default_type	app/octet-stream;
	sendfile	on;
	keepalive_timeout	65;
	upstream www_server_pools {
		server 192.168.1.1:80 weight=1;
		server 192.168.1.2:80 weight=1;
		server 192.168.1.3:80 weight=1;
	}
	server {
		listen 80;
		server_name www.yyang.com;
		location / {
			proxy_pass http://www_server_pools;
		}
	}
}


喜欢 (0)