우분투 업그레이드 후 Nginx front, Apache 백엔드의 mod_rpaf 문제


10

정적 파일을 위해 Nginx 프런트 엔드를 실행하고 Apache의 mod_rpaf를 사용하여 백엔드에서 올바른 원격 IP 주소를 설정하여 PHP 및 승객을위한 Apache 백엔드로 프록시를 작성하고 있습니다. Ubuntu 12.04 (Precise)로 업그레이드 할 때까지 모든 것이 잘 작동했습니다. 이제 Apache는 127.0.0.1에서 오는 모든 연결을보고합니다.

관련 구성은 다음과 같습니다. 업그레이드로 변경된 사항은 없습니다.

Nginx :

proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;

mod_rpaf :

<IfModule mod_rpaf.c>
    RPAFenable On
    RPAFsethostname On
    RPAFproxy_ips 127.0.0.1 ::1
    RPAFheader X-Forwarded-For
</IfModule>

내가 사용하고 %{X-Forwarded-For}i내 아파치 LogFormat 지시어에 내가 Nginx에 제대로 따라 주소를 전달하고 알 수 있도록 액세스 로그는 올바른 원격 주소를 보여주고있다.

A의 phpinfo()시험 HTTP_X_FORWARDED_FOR 올바른 원격 주소를 보이고 있지만 REMOTE_ADDR는 127.0.0.1이다. 이것은 WordPress 주석과 같은 PHP 응용 프로그램에도 반영됩니다.

Nginx와 mod_rpaf를 X-Real-IP로 전환하려고 시도했지만 아무런 효과가 없습니다.

내가 놓친 변화가 있었습니까?

관련 버전 정보 : Ubuntu 저장소에서 설치된 모든 것 :

Nginx 1.1.19
Apache 2.2.22
mod_rpaf 0.6

답변:


10

방금이 문제를 직접 처리했습니다. 금요일에 우분투 버그가 확인되었습니다. 다음을 변경하여 작업을 다시 수행 할 수 있습니다.

<IfModule mod_rpaf.c>

<IfModule mod_rpaf-2.0.c>

/etc/apache2/mods-available/rpaf.conf에


12.04로 업그레이드 한 후 정확히 같은 문제가 발생 했으며이 게시물을 찾기 전에 반나절을 잃었습니다. 감사합니다!
Kouber Saparev


1
14.04로 업그레이드 한 후이 게시물을 보는 사람은이 수정 사항이 더 이상 적용되지 않습니다. 대신에 대신 사용하고 싶을 mod_remoteip것입니다 mod_rpaf.
Stefan Magnuson

1

mod_rpaf는 Debian Jessie에서 더 이상 사용되지 않는 것으로 보이며 추가 개발이 중단되었습니다. Debian Jessie의 기본 모듈 인 mod_remoteip으로 전환하십시오.


0

이 질문에 대한 업데이트입니다. mod_rpaf가 사용하는 변수의 형식이 변경되었습니다. Apache는 현재 위에 나열된 변수 (RPAFenable, RPAFsethostname, RPAFproxy_ips, RPAFheader)로 시작하지 않습니다.

새로운 형식은 다음과 같습니다.

LoadModule              rpaf_module modules/mod_rpaf.so
RPAF_Enable             On
RPAF_ProxyIPs           127.0.0.1 10.0.0.0/24
RPAF_SetHostName        On
RPAF_SetHTTPS           On
RPAF_SetPort            On
RPAF_ForbidIfNotProxy   Off
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.