inside22
@inside22

NGINX — как ограничить доступ к контенту по HTTP_X_REAL_IP?

Доброго вечера.

У меня есть два сервера, первый и второй :=)
к первому серверу прикреплен domain.com
на втором сервере у меня domain.com/blog/, то есть при обращении к этому адресу первый сервер проксирует запрос на второй сервер.

Сейчас мне на втором сервере надо выставить ограничения по ИП-адресу на domain.com/blog/wp-admin/.
Проблема заключается в том, что при проксировании на второй сервер реальный ИП-адрес посетителя передается только через HTTP_X_REAL_IP и моя конфигурация по этой причине не работает:

location ~ ^/blog/wp-admin(/?)(.*) {	
		satisfy  any;		
		allow  10.11.142.234;
		allow  10.11.83.210;
		allow  10.11.85.50;
		allow  10.11.40.2;
		allow  10.11.183.98;		
		auth_basic           "Blog";
		auth_basic_user_file /etc/nginx/.htpasswd;		
		deny   all;			
	}


А вот конфиг первого сервера:

location ~ ^/blog(/?)(.*) {
		proxy_set_header Host www.domain.com;
		proxy_set_header X-Real-IP  $remote_addr;
		proxy_set_header X-Forwarded-For $remote_addr;
		proxy_pass https://ip-address:443/blog/$2$is_args$args;
		proxy_redirect off;
	}


Буду очень признателен, если подскажите мне решение этой проблемы.
Я не хочу прописывать ИП-адреса на первом сервере.
  • Вопрос задан
  • 493 просмотра
Пригласить эксперта
Ответы на вопрос 1
un1t
@un1t
На втором надо указать set_real_ip_from со значение ip первого.
nginx.org/ru/docs/http/ngx_http_realip_module.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы