Балансировка нагрузки Nginx на основе IP - PullRequest
0 голосов
/ 31 декабря 2011

В настоящее время мы используем сервер Nginx для балансировки нагрузки.Мы бы хотели, чтобы IP-адрес нашего офиса был перенаправлен на определенный сервер, где, как и весь остальной трафик, балансировка нагрузки выполняется нормально.

Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 02 сентября 2012

Это не рабочий конфиг, но я надеюсь, что основная идея ясна

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;
    }
}
0 голосов
/ 02 сентября 2012

Вы можете выполнить простое перенаправление с любого веб-сервера (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, в вашем случае - на балансировщик нагрузки.

...