Nginx 에 다단 계 에이전트 가 있 을 때 사용자 의 실제 IP 주 소 를 가 져 옵 니 다.

2908 단어 nginx
웹 서버 앞 에 프 록 시 서버 를 설정 할 때 nginx 모듈 에서 $remoteaddr 값 은 실제 클 라 이언 트 의 IP 주소 가 아 닌 이전 에이전트 의 IP 주소 입 니 다.실제 클 라 이언 트 IP 주 소 를 가 져 오기 위해 nginx 자체 테이프 의 realip 모듈 을 사용 할 수 있 습 니 다.이 모듈 은 백 엔 드 웹 서버 가 가 져 올 수 있 도록 실제 클 라 이언 트 IP 주 소 를 HTTP 요청 헤더 에 설정 할 수 있 습 니 다.
다음은 1 급 에이전트 nginx + nginx 의 설정 절차 예제 입 니 다.
STEP 1: realip 모듈 설치
nginx 의 설치 단계 ./configure 에 서 는 realip 모듈 을 nginx 에 컴 파일 하기 위해 서 --with-http_realip_module 를 가 져 가 야 합 니 다.
두 번 째 단계: nginx. conf 설정
프 록 시 설정 에 다음 과 같이 추가 proxy_set_header X-Real-IP $remote_addr;:
location /.well-known/est/serverkeygen {
           proxy_pass http://127.0.0.1:61084;
           proxy_set_header   X-Real-IP   $remote_addr;
        }

웹 서버 설정 에 추가 set_real_ip_from 127.0.0.1; 중 127.0.0.1 은 프 록 시 서버 주소 이 고 여 기 는 이 컴퓨터 주소 입 니 다.
        location /.well-known/est {
            set_real_ip_from  127.0.0.1;
            est;
        }

세 번 째 단 계 는 nginx 모듈 에서 IP 주 소 를 가 져 옵 니 다.
    ngx_int_t   key;
    ngx_http_variable_value_t *remoteAddress = NULL;
    ngx_str_set(&var_name, "remote_addr");
    key = ngx_hash_key(var_name.data, var_name.len);
    remoteAddress = ngx_http_get_variable(r, &var_name, key);
    if (remoteAddress == NULL || remoteAddress->not_found == 1) {
        ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
        return;
    }
    ngx_log_error(NGX_LOG_DEBUG, r->connection->log, 0, "remote Addr(len:%d): %s", remoteAddress->len, remoteAddress->data);

/ / 어떤 진리 가 끝 이 없 을 까 봐 더 나 은 기쁨 이 있 습 니 다.

좋은 웹페이지 즐겨찾기