Рейтинг:0

Невозможно получить доступ к веб-службе с плавающим IP-адресом, назначенным моей машине

флаг ma

У меня есть машина, для которой я назначил плавающий IP-адрес. Эта машина также является моим балансировщиком нагрузки. Я могу легко получить доступ к своему сервису, используя IP-адрес балансировщика нагрузки.

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

судо нано /etc/haproxy/haproxy.cfg

значения по умолчанию
        журнал глобальный
        режим http
        опция httplog
        опция
        тайм-аут подключения 5000
        тайм-аут клиента 50000
        тайм-аут сервера 50000
        файл ошибок 400 /etc/haproxy/errors/400.http
        файл ошибок 403 /etc/haproxy/errors/403.http
        файл ошибок 408 /etc/haproxy/errors/408.http
        файл ошибок 500 /etc/haproxy/errors/500.http
        файл ошибок 502 /etc/haproxy/errors/502.http
        файл ошибок 503 /etc/haproxy/errors/503.http
        файл ошибок 504 /etc/haproxy/errors/504.http

#HAProxy для веб-серверов
веб-интерфейс
  привязать IPADDRESSOFLOADBALANCER:80
  режим http
  default_backend веб-сервер

бэкэнд
  круговой баланс
  сервер веб-сервер1 IPADD1:80 проверить
  сервер веб-сервер2 IPADD2:80 проверить
  сервер веб-сервер3 IPADD3:80 проверка
  сервер веб-сервер4 IPADD4:80 проверить

Есть ли что-нибудь еще, что мне нужно сделать, кроме назначения плавающего IP-адреса. Я не могу получить доступ к сервису, используя плавающий IP-адрес.

введите описание изображения здесь

c4f4t0r avatar
флаг nl
вы можете использовать bind *:80 в своем интерфейсе haproxy
Himanshu Poddar avatar
флаг ma
@ c4f4t0r Да, это сработало, но я не понял, почему это работает? Также не будет никаких проблем с безопасностью. Нельзя ли специально привязать к 2 IP адресам?
Рейтинг:1
флаг pe

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

Рейтинг:0
флаг ma

Я использовал платформу Digtal Ocean для создания своих капель. После присвоил ему плавающий IP с этой страницы.

https://cloud.digitalocean.com/networking/floating_ips?i=0eb956

Теперь мне нужно получить частный IP-адрес моей капли с помощью команды IP а

root@ubuntu-s-1vcpu-1gb-blr1-01:~# ip a
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
ссылка/петля 00:00:00:00:00:00 брд 00:00:00:00:00:00
инет 127.0.0.1/8 область хоста lo
valid_lft навсегда
inet6 :: 1/128 узел области видимости
valid_lft навсегда
2: eth0: mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000
ссылка/эфир 52:a0:A:B:C:D brd ff:ff:ff:ff:ff:ff
inet PUBLICIP/20 brd E.F.G.H глобальная область действия eth0
valid_lft навсегда
inet *PRIVATEIP(X.X.X.X)*/16 brd X.X.I.J глобальная область действия eth0
valid_lft навсегда
inet6 2400:6180:ZZ:ZZ::ZZ:ZZZZ/64 глобальная область действия
valid_lft навсегда
inet6 fe80::50a0:9fff:fe54:add2/64 ссылка на область видимости
valid_lft навсегда
3: eth1: mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000
ссылка/эфир 9a:4b:a5:ZZ:ZZ:ZZ brd ff:ff:ff:ff:ff:ff
inet K.L.M.N/20 brd Область O.P.Q.R глобальная eth1
valid_lft навсегда
inet6 fe80::984b:SSSS:TTTT:UUUU/64 ссылка на область действия
valid_lft навсегда

Я получил плавающий IP-адрес, скажем, FLOATINGIPADDRESS

Плавающий IP работает через Anchor IP через интерфейс eth0. Мы можем использовать тот же частный IP-адрес, поскольку любой трафик, отправляемый через плавающий IP-адрес, будет отправляться только на этот частный IP-адрес, т.е. инет *X.X.X.X*/16 брд

Теперь мне нужно, чтобы HAProxy привязывался к этому частному IP-адресу в моем файле конфигурации HAProxy.

судо нано /etc/haproxy/haproxy.cfg

#HAProxy для веб-серверов
веб-интерфейс
  привязать PRIVATEIP(X.X.X.X):80
  привязать LOADBALNCERIP:80
  режим http
  default_backend веб-сервер

бэкэнд

  http-request set-header X-Forwarded-Proto https if { ssl_fc } # Для Proto
  http-request add-header X-Real-Ip %[src] # Пользовательский заголовок с исходным IP-адресом
  option forwardfor # X-forwarded-for

  круговой баланс
  сервер web-server1 IP1:80 проверка
  сервер web-server2 IP2:80 проверить
  сервер web-server3 IP3:80 проверка
  сервер web-server4 IP4:80 проверить

слушать статистику
привязать PRIVATEIP(X.X.X.X):8080
привязать LOADBALNCERIP:8080
режим http
опцион вперед для
опция httpclose
включить статистику
статистика шоу-легенды
обновление статистики 5s
статистика uri /stats
stats realm Haproxy\ Статистика
stats auth root:password #Логин Пользователь и пароль для мониторинга
админ статистики если TRUE
default_backend веб-сервер
c4f4t0r avatar
флаг nl
если вы проверите вывод netstat -tunap, вы увидите, что haproxy прослушивал только ваш частный IP-адрес.
Himanshu Poddar avatar
флаг ma
что вы подразумеваете под "только"? он также прослушивал общедоступный IP-адрес
c4f4t0r avatar
флаг nl
в исходном вопросе: «У вас была привязка PRIVATEIP (X.X.X.X): 80», теперь вы продолжаете все менять, вы можете перейти к выводу команды «neststat» netstat -tunap | grep ПОСЛУШАЙТЕ, и вы поймете, что я имею в виду :)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.