использовать HTTP_X_REAL_IP в .htaccess auth - PullRequest
1 голос
/ 14 февраля 2012

У меня есть баланс нагрузки nginx перед моими веб-серверами, поэтому заголовок REMOTE_ADDR перезаписывается ip-адресом loadbalancer.

исходный адрес ip находится в заголовке HTTP_X_REAL_IP.Я знаю, что могу получить заголовок с правилами перезаписи, но есть ли способ использовать заголовок http в разрешении метода .htaccess Auth?

<Directory "/path/*">
  AuthType Basic
  AuthName "Authentication Required"
  AuthUserFile "/path/authfiles/www-app"
  Require valid-user
  ...
  Allow from HTTP_X_REAL_IP
</Directory>

Я пробовал поискать в Google, но натолкнулся на setifenv (пробовал) и переписал правила.

Ответы [ 2 ]

1 голос
/ 22 декабря 2013

Используйте это:

SetEnvIf X-Forwarded-For ^(%IP1|%IP2|%IP3)$ let_me_in
Allow from env=let_me_in

, где% IP1,% IP2,% IP3 - ваши IP-адреса.

Конечно, вы можете изменить регулярное выражение по своему желанию или просто заменить его наодин IP, или читайте больше здесь: http://httpd.apache.org/docs/trunk/mod/mod_access_compat.html

1 голос
/ 14 февраля 2012

Allow не позволяет передавать ему заголовок HTTP, но принимает переменные среды. Вы должны быть в состоянии увидеть env. переменная с RewriteCond / RewriteRule. Я не проверял это, но что-то вроде этого может работать:

RewriteCond %{HTTP:HTTP_X_REAL_IP} ^.+$
RewriteRule .* - [env=real_ip:%0]
Allow from env=real_ip
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...