[server] Nginx 리버스 프록시에서 포워드 커스텀 헤더

추가 처리를 위해 Apache에 요청을 전달하는 리버스 프록시 역할을하는 nginx 웹 서버가 있습니다 (이유를 묻지 않기를 간청합니다). 사용자 정의 헤더를 첨부하려고하는 요청이 있으며 nginx가 해당 사용자 정의 헤더를 Apache와 함께 전달하여 앱에서 무언가를 할 수 있기를 원합니다.

나는 HttpProxyModule문서를 찔 렀지 만, 올바른 장소에 있더라도 설명이 잘되지 않습니다 (아직 잘하지 않을 수도 있습니다).

nginx가 X-CUSTOM-REFERRER헤더 를 전달하도록하려면 어떻게해야합니까? 또한, 가능하다면, 나는 그것이 함께 전달하고 싶은 어떤 에서 오는 사용자 정의 헤더. 후자는 너무 많은 요청하는 경우, 전자는 내 현재의 필요 충분합니다.

보시다시피, 저는 nginx를 처음 사용하므로 치료 버전이 도움이 될 것입니다.

감사.

최신 정보

기존 설정의 관련 스 니펫 :

location / {
    proxy_pass                  http://preview;
    proxy_redirect              off;
    proxy_set_header            Host $host;
    proxy_set_header            X-Real-IP $remote_addr;
    proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
    # proxy_set_header            X-Custom-Referrer $x_custom_referrer;
}



답변

HttpProxyModuleproxy_set_header지시문을 통해이를 수행 할 수 있습니다. 예를 들면 다음과 같습니다.

proxy_pass http://apachehost;
proxy_set_header X-Custom-Referrer $proxy_add_<header_field_name_from_last_request>;


답변

ngx_headers_more 모듈을 사용하면 http 헤더를 변경하고 추가 할 수 있습니다.


답변

업스트림 헤더 ($ http_로 시작)와 추가 사용자 정의 헤더를 사용할 수 있습니다. 예를 들면 다음과 같습니다.

add_header X-Upstream-01 $http_x_upstream_01;
add_header X-Hdr-01  txt01;

다음으로 콘솔로 이동하여 사용자 헤더로 요청하십시오.

curl -H "X-Upstream-01: HEADER1" -I http://localhost:11443/

응답에는 서버에서 설정 한 X-Hdr-01과 클라이언트에서 설정 한 X-Upstream-01이 포함됩니다.

HTTP/1.1 200 OK
Server: nginx/1.8.0
Date: Mon, 30 Nov 2015 23:54:30 GMT
Content-Type: text/html;charset=UTF-8
Connection: keep-alive
X-Hdr-01: txt01
X-Upstream-01: HEADER1


답변