Резюме - необходимо добавить IP-адреса в белый список на mysite1.example.com. теперь, когда они добавлены, это не работает, так как каждый запрос поступает с сервера балансировки нагрузки.
Я работаю над настройкой с передним хостом Nginx с восходящим бэкэндом для балансировки нагрузки всех пакетов tcp через порт 443 на внутренние серверы.
Конфигурация nginx сервера Loadbalancer, на котором работает nginx — сервер C, показана ниже.
транслировать {
восходящий поток stream_backend {
хеш $remote_addr согласован;
сервер 10.15.15.3:443; ## сервер А
сервер 10.15.15.9:443; ## сервер Б
}
сервер {
слушать 443;
proxy_pass stream_backend;
прокси_таймаут 5с;
proxy_connect_timeout 5 с;
}
}
сервер A и сервер B имеют ниже nginx.conf. это идентичные серверы с приложениями.
в каждом из них работает два виртуальных хоста. они работают нормально.
http {
сервер {
имя_сервера mysite1.example.com;
слушать *:443 ssl;
слушать [::]:443 ssl;
разрешить 123.45.85.220; # похоже это не работает
отрицать все; # работает только это
расположение ^~ /статический/ {
...
}
...
файл сертификата ssl.pem;
ssl_certificate_key файл.ключ;
}
сервер {
имя_сервера mysite2.example.com;
слушать *:443 ssl;
слушать [::]:443 ssl;
местоположение / что-то {
...
}
местоположение /что-то2{
...
}
файл сертификата ssl.pem;
ssl_certificate_key файл.ключ;
}
}
что мне нужно, так это внести в белый список только несколько IP-адресов для виртуального хоста mysite1.example.com.
проблема, с которой я сталкиваюсь, заключается в том, что nginx, работающий на серверах A и B, видит Ip балансировщика нагрузки как Ip клиента. поэтому при попытке добавить разрешающий IP; отрицать все. не работает для любого хоста, поскольку он имеет IP-адрес балансировщика нагрузки для всех запросов в качестве IP-адреса клиента.
Может ли кто-нибудь помочь мне добавить конфигурацию IP-адреса прокси-сервера, чтобы добиться правильной работы вышеупомянутой настройки.
Настройка завершена, за исключением проблемы с белым списком IP-адресов.
p.s. Завершение SSL происходит на внутренних серверах, сервере A и сервере B.
Я искал в Интернете и нашел их полезными, но все еще не мог понять, как заставить все это работать.
https://stackoverflow.com/questions/40873393/nginx-real-client-ip-to-tcp-stream-backend
https://www.cyberciti.biz/faq/nginx-redirect-backend-traffic-based-upon-client-ip-address/