Nginx负载均衡和反向代理

1:反向代理

         代理就是中介,那有反向代理就有正向代理,两者的区别是什么嘞?

          正向代理隐藏真实客户端,服务端不知道实际发起请求的客户端.,proxy和client同属一个LAN,对server透明;

          反向代理隐藏真实服务端,客户端不知道实际提供服务的服务端,proxy和server同属一个LAN,对client透明。 

   

    

    基本配置项 

  (1)proxy_pass

             将当前请求反向代理到URL参数指定的服务器上

      (2)proxy_method

            表示转发时的协议方法名

           proxy_method POST;       客户端转发来的GET请求在转发时方法名会改为POST请求

       (3)proxy_redirect

           当上游服务器返回的响应是重定向或者刷新请求(HTTP响应码是301或者302),可以重设HTTP头部的location或refresh

           proxy_redirect    http://location:8000/two/  http://location:8000/noe/

         (4)proxy_next_upstream

           当上游服务器请求出现错误,继续换一台服务器转发请求。     

    error:在与服务器建立连接,向其传递请求或读取响应标头时发生错误;

    timeout:在与服务器建立连接,向其传递请求或读取响应头时发生超时

    invalid_header:服务器返回空响应或无效响应;

    http_500:服务器返回了带有代码500的响应;

    http_502:服务器返回具有代码502的响应;

    HTTP_503:服务器返回具有代码503的响应;

    http_504:服务器返回具有代码504的响应;

    http_403:服务器返回带有代码403的响应;

    http_404:服务器返回具有代码404的响应;

    off:禁用将请求传递到下一个服务器。

         示例:

             #当其中一台返回错误码404,500...等错误时,可以分配到下一台服务器程序继续处理,提高平台访问成功率,多可运用于前台程序负载,设置proxy_next_upstream

        proxy_next_upstream http_500 | http_502 | http_503 | http_504 |http_404;

            #proxy_next_upstream off   关闭向下转发请求

            

2:负载均衡

       负载均衡直接上代码,用Http Proxy module配置一个反向代理服务器。

      示例如下:

      当server 192.168.1.2:80在30秒内断连3次就进行连接备份服务器。

#upstream模块

#定义一个上游服务器的集群
    upstream backend {
        #在30秒内连接失败次数超过3次
        server 192.168.1.2:80     max_fails=3 fail_timeout=30s;
        #备份服务器
        server 192.168.1.8:80  backup;
        server 192.168.1.9:80  backip weight=5;
    }
#server模块
server {
         listen 80;
	   location / {
		 proxy_pass http://backend;
           }
}

  

posted @ 2018-05-12 09:50  姚红  阅读(524)  评论(0编辑  收藏  举报