Nginx 역방향 에이전트 아파 치 의 경우 아파 치 에 실제 IP 를 가 져 옵 니 다.

Nginx 가 나타 난 후부 터 우 리 는 Nginx 를 전방 에서 정적 파일 을 처리 하 게 한 다음 에 proxy 를 통 해 동적 요청 을 apache 에 걸 러 내 는 것 을 좋아 합 니 다.
그러면 문제 가 발생 할 수 있 습 니 다. 후방 apache 에서 의 응용 프로그램 에서 얻 은 방문객 IP 는 모두 Nginx 가 있 는 서버 의 IP 또는 이 컴퓨터 127.0.0.0.1 입 니 다.
가장 눈 에 띄 는 것 은 apache 의 방문 로 그 를 보 는 것 입 니 다. 왔다갔다 하 는 것 은 모두 내부 네트워크 의 IP 입 니 다. 만약 에 '단일 IP 는 중복 로그 인 할 수 없습니다', '단일 IP 등록 은 n 분 간격 입 니 다' 와 같은 IP 판별 에 사용 되 는 안전 규칙 이 있다 면 귀 찮 습 니 다.
다행히 nginx proxy 의 매개 변 수 를 수정 하여 백 엔 드 응용 을 통 해 Nginx 가 보 낸 요청 메 시 지 를 외부 네트워크 의 IP 로 가 져 올 수 있 습 니 다. proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
그러나 이 해결 문 제 는 응용 에 만 적용 되 고 apache 로그 에서 가 져 온 ip 은 여전히 로 컬 입 니 다.
이 럴 때 apache 의 제3자 모듈 인 'mod rpaf' 에 맞 춰 야 합 니 다. 공식 사이트:http://stderr.net/apache/rpaf/
설치 방법: wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar zxvf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/opt/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
설치 완료 후 httpd. conf 에 다음 과 같이 추가 합 니 다.LoadModule mod_rpaf-2.0.so_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 192.168.1.90 #Nginx IP.
RPAFheader X-Forwarded-For

apache 를 다시 시작 하고 apache 의 방문객 로 그 를 보면 실제 사용자 ip 입 니 다. 남 겨 진 문 제 는 'SERVER' 입 니 다.ADDR 127.0.0.1 됐어 요.

좋은 웹페이지 즐겨찾기