이중 nginx 에이전트 실제 접근 ip 가 져 오기

7295 단어 nginx실제 IP
환경 소개:
  nginx 프 록 시 서버 두 대, 첫 번 째 는 실제 클 라 이언 트 의 요청 을 받 은 다음 두 번 째 nginx 프 록 시 서버 로 예약 하고 마지막 으로 웹 백 엔 드 로 예약 합 니 다.
  필요:
   두 번 째 nginx 는 첫 번 째 nginx 의 요청 을 받 기 때문에 기본 적 인 상황 에서 로그 기록 은 모두 첫 번 째 nginx 의 ip 방문 입 니 다. 현재 두 번 째 nginx 의 방문 로 그 는 실제 클 라 이언 트 의 ip 를 기록 할 수 있 도록 요구 하고 있 습 니 다.
첫 번 째 nginx 설정:

  
  
  
  
  1. worker_processes  1; 
  2. error_log  logs/error.log  notice; 
  3. pid        logs/nginx.pid; 
  4. worker_rlimit_nofile 65535; 
  5. events { 
  6.     use epoll; 
  7.     worker_connections  65535; 
  8.  
  9. http { 
  10.     include       mime.types; 
  11.     default_type  application/octet-stream; 
  12.     keepalive_timeout  65; 
  13.  
  14.     proxy_temp_path   /data0/proxy_temp_path; 
  15.     proxy_cache_path  /data0/proxy_cache_path  levels=1:2   keys_zone=cache:128m inactive=1d max_size=1g
  16.  
  17.     upstream hdwiki { 
  18.         server 192.168.253.105; 
  19.         } 
  20.  
  21.  
  22.     server { 
  23.         listen       80; 
  24.         server_name  www.hdwiki.com; 
  25.         index index.html index.htm; 
  26.  
  27.         location / 
  28.         { 
  29.                  proxy_set_header Host  $host; 
  30.                  proxy_set_header X-Forwarded-For  $remote_addr; 
  31.                  proxy_pass http://hdwiki; 
  32.         } 
  33.  
  34.         access_log   logs/access_hdwiki.log; 
  35.         } 

proxy_set_header Host  $host; 방문 한 도 메 인 이름 을 요청 패키지 의 머리 정보 에 추가 하면 백 엔 드 웹 의 가상 호스트 를 찾 을 수 있 습 니 다.
proxy_set_header X-Forwarded-For  $remote_addr; 클 라 이언 트 의 진짜 ip 주 소 를 요청 패키지 의 머리 정보 에 추가 하고 X - Forward - for 로 표시 합 니 다.
 
두 번 째 nginx 설정:
우선 컴 파일 할 때 -- with - httprealip_module 이 모듈.
참고:http://wiki.nginx.org/HttpRealIpModule

  
  
  
  
  1. worker_processes  1; 
  2. #error_log  logs/error.log  notice; 
  3. pid        logs/nginx.pid; 
  4. worker_rlimit_nofile 65535; 
  5. events { 
  6.     use epoll; 
  7.     worker_connections  65535; 
  8.  
  9. http { 
  10.     include       mime.types; 
  11.     default_type  application/octet-stream; 
  12.     keepalive_timeout  65; 
  13.  
  14.     proxy_temp_path   /data0/proxy_temp_path; 
  15.     proxy_cache_path  /data0/proxy_cache_path  levels=1:2   keys_zone=cache:128m inactive=1d max_size=1g
  16.  
  17.     upstream hdwiki { 
  18.         server 192.168.253.105:8090; 
  19.         } 
  20.  
  21.  
  22.     server { 
  23.         listen       80; 
  24.         server_name  www.hdwiki.com; 
  25.         index index.html index.htm; 
  26.  
  27.         location / 
  28.         { 
  29.                  proxy_set_header Host  $host; 
  30.                  proxy_set_header X-Forwarded-For  $remote_addr; 
  31.                  set_real_ip_from   192.168.253.103; 
  32.                  real_ip_header     X-Forwarded-For; 
  33.                  proxy_pass http://hdwiki; 
  34.         } 
  35.  
  36.         access_log   logs/access_hdwiki.log; 
  37.         } 

set_real_ip_from   192.168.253.103; 첫 번 째 nginx 의 ip 주 소 는 실제 ip 이 어디에서 왔 는 지 지정 합 니 다.
real_ip_header     X-Forwarded-For; 첫 번 째 nginx 에서 클 라 이언 트 의 ip 를 가 져 옵 니 다. 실제 클 라 이언 트 의 ip 은 첫 번 째 nginx 설정 에서 X - Forward - for 에 표시 되 었 기 때문에 header 헤드 에서 추출 합 니 다.
이렇게 하면 두 번 째 nginx 프 록 시 서버 의 방문 로그 에서 실제 클 라 이언 트 가 ip 에 접근 하 는 것 을 볼 수 있 습 니 다.
본 고 는 '생명 이 멈 추 지 않 고 분투 하 는 것 이 멈 추 지 않 는 다' 는 블 로그 에서 나 온 것 으로 전 재 를 사절 합 니 다!

좋은 웹페이지 즐겨찾기