nginx负载均衡配置实例-nginx负载均衡配置实例

一、对所有请求实现一般轮询规则的负载均衡

   http {

        upstream live_node { 	# 配置后端服务器组
 #max_fails默认值为1,fail_timeout默认值为10s,max_fails=0表示不做检查
            server 127.0.0.1:8089 weight=1 max_fails=1  fail_timeout=10s;   
            server 127.0.0.1:8088;
            keepalive 32;
            hash $request_uri consistent;
        }

        server {
            listen 80;
            server_name  localhost;
            location / {
                proxy_pass http://live_node;         
		# 注意:proxy_pass后面的路径不带uri时,
		其会将location的uri传递给后端主机
                proxy_set_header Host $host;         
		# 保留客户端的真实信息
                proxy_set_header Host $host:$server_port;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Real-PORT $remote_port;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                
                proxy_redirect off;
                proxy_buffer_size  128k;
                proxy_buffers   32 32k;
                proxy_busy_buffers_size 128k;
            }
        }

        server {                    # 配置虚拟服务器8088
            listen 8088;
            server_name  localhost;
            location / {
                root   /usr/local/nginx/html2;      
                index  index.html index.htm;
            }
        }

        server {                    # 配置虚拟服务器8089
            listen 8089;
            server_name  localhost;
            location / {
                root   /usr/local/nginx/html3;
                index  index.html index.htm;
            }
        }
    }

二、对所有请求实现加权轮询规则负载均衡

   http {

        upstream live_node {                        # 配置后端服务器组
            server 127.0.0.1:8089 weight=5;         # 这个处理客户端请求会多些 
            server 127.0.0.1:8088 weight=1;         # 默认 weight = 1
        }

        server {
            listen 80;
            server_name  localhost;
            location / {
                #proxy_pass http://new_uri/;         # 注意:proxy_pass后面的路径是一个uri时,其会将location的uri替换为proxy_pass的uri
                proxy_pass http://live_node;         
                proxy_set_header Host $host;         # 保留客户端的真实信息
            }
        }

        server {                    # 配置虚拟服务器8088
            listen 8088;
            server_name  localhost;
            location / {
                root   /usr/local/nginx/html2;      
                index  index.html index.htm;
            }
        }

        server {                    # 配置虚拟服务器8089
            listen 8089;
            server_name  localhost;
            location / {
                root   /usr/local/nginx/html3;
                index  index.html index.htm;
            }
        }
    }

三、对特定资源实现负载均衡

http {
	upstream videobackend {  # 配置后端服务器组视频代理
		server 127.0.0.1:8088;         
		server 127.0.0.1:8089;        
	}
	upstream filebackend {  # 配置后端服务器组文件代理
		server 127.0.0.1:8888;        
		server 127.0.0.1:8889;        
	}
	server {
		listen 80;
		server_name  localhost;
		location /video/ {
			proxy_pass http://videobackend;      # 视频代理
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;        
			#  proxy_set_header field value; 设定发往后端主机的请求报文的请求首部的值
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;         
		}

		location /file/ {
			proxy_pass http://filebackend;       # 文件代理
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;         
		}
	}

	server {   # 配置虚拟服务器8088
		listen 8088;
		server_name  localhost;
		location /video {
			 alias   /usr/local/nginx/html2;
		}
	}

	server {   # 配置虚拟服务器8089
		listen 8089;
		server_name  localhost;
		location /video {
			 alias   /usr/local/nginx/html3;
		}
	}

	server {    # 文件虚拟服务器1
		listen 8888;
		server_name  localhost;
		location /file {
			alias   /usr/local/nginx/html4;
		}
	}

	server {  # 文件虚拟服务器2
		listen 8889;
		server_name  localhost;
		location /file {
			alias   /usr/local/nginx/html5;
		}
	}
}

四、实现带有URL重写的负载均衡

http {
	upstream backend {  # 配置后端服务器组
		server 127.0.0.1:8888;        
		server 127.0.0.1:8889;        
	}

	server {
		listen 80;
		server_name  www.backend.com;
		index  index.html index.htm;
		location /file/ {
			rewrite ^(/file/.*)/media/(.*)\.*$ $1/mp3/$2.mp3 last;        
		}

		location / {
			proxy_pass http://frontend;      # 前台域名代理
			proxy_set_header Host $host;      
		}
	}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@不会写代码的小张

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值