基于IP的Nginx负载均衡

时间:2011-12-30 21:12:31

标签: nginx load-balancing

我们目前使用Nginx服务器进行负载平衡。我们希望将我们的办公室IP重定向到特定的服务器,因为所有其他流量通常都是负载平衡的。

这可能吗?

2 个答案:

答案 0 :(得分:0)

您可以使用任何Web服务器(Apache,Tomcat,nginx等)进行简单的重定向。 例如,在Java上,您可以创建一个简单的index.jsp,其中包含以下内容:

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
    <title>Your Company</title>
    <link rel="icon" type="image/png" href="http://www.yourloadbalance.com/favicon.png">
</head>
<body>
<%
response.sendRedirect("www.yourloadbalance.com");
%>
</body>
</html>

这段代码会将每个请求重定向到给定的URL,在您的情况下会重定向到负载均衡器。

答案 1 :(得分:0)

这不是一个有效的配置,但我希望主要的想法是明确的

map $remote_addr $backend {
    default app-servers;
    192.168.1.1 dev-servers; # office IP
}

upstream app-servers { # this is normal upstreams group
    server ...;
    server ...;
}

upstream dev-servers { # this is upstream(s) for Office IP
    server ...; 
}

server {
    listen 80;
    server_name bar.foo.com;

    location / {
        proxy_pass http://$backend;
    }
}