tengine 负载均衡备忘

tengine 负载均衡备忘

环境

Centos 6.6 X86_64
Tengine-2.1.1

负载均衡

http{
    ...
      upstream backendServs {
        server localhost:8180;
        server localhost:8280;
        server localhost:8380;
        #session_sticky;
        #session_sticky cookie=ngroute fallback=on path=/ mode=insert option=direct;
    }

    limit_req_zone $binary_remote_addr $uri zone=allips:10m rate=10r/s;

    server{
        ...
         location / {
            limit_req zone=allips burst=10 nodelay;
            root   html;
            index  index.html index.htm;
            proxy_set_header        Host $host:$server_port;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://backendServs;
        }

        ...
    }
    ...
}

说明:
1.limit_req_zone 是限流设置,1秒钟同一ip,对同一uri只能限制10次访问。
2.session_sticky 是session粘着设置,注释掉,有需要的自己打开
3.特别注意proxy_set_header Host host: server_port;设置,如果你的前端不是80,如果不把$server_port;传到后端,会出现莫明其妙跳转到80端口问题。

测试页面

test.jps

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.util.*" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>测试session</title>
 </head>

 <body>
  Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"");

out.println("<br>ID " + session.getId()+"");
out.println("<br>");
out.println("=============================================<br>");
  out.print("Session 列表");
  Enumeration e = session.getAttributeNames();
  while (e.hasMoreElements()) {
     String name = (String)e.nextElement();
     String value = session.getAttribute(name).toString();
     out.println( name + " = " + value+"");
         System.out.println( name + " = " + value+"<br>");
   }

    //设置user_count值,累加到session中
   String user_count=(String)session.getAttribute("user_count");
    if(user_count == null || user_count.length()==0)    {
        session.setAttribute("user_count","1");
    }
    else{
        user_count=Integer.parseInt(user_count)+1+"";
        session.setAttribute("user_count",user_count);
    }
%>
 </body>
</html>

说明

所有相关的目录,链接,参数等请根据实际情况自行调整。

猜你喜欢

转载自blog.csdn.net/tanweii163/article/details/50265197