nginx 프록시 서버에서 요청 헤더 전달
내 응용 프로그램에 대한 요청을 필터링하기 위해 Nginx를 프록시로 사용하고 있습니다. "http_geoip_module"의 도움으로 국가 코드 http-header를 만들고 "headers-more-nginx-module"을 사용하여 요청 헤더로 전달하려고합니다. 다음은 Nginx 구성의 위치 블록입니다.
location / {
proxy_pass http://mysite.com;
proxy_set_header Host http://mysite.com;;
proxy_pass_request_headers on;
more_set_headers 'HTTP_Country-Code: $geoip_country_code';
}
그러나 이것은 응답의 헤더 만 설정합니다. "more_set_headers"대신 "more_set_input_headers"를 사용해 보았지만 헤더가 응답에 전달되지도 않았습니다.
내가 여기서 무엇을 놓치고 있습니까?
프록시 백엔드에 변수를 전달하려면 프록시 모듈을 사용하여 설정해야합니다.
location / {
proxy_pass http://example.com;
proxy_set_header Host example.com;
proxy_set_header HTTP_Country-Code $geoip_country_code;
proxy_pass_request_headers on;
}
이제 프록시 백엔드로 전달됩니다.
문제는 '_'밑줄이 헤더 속성에서 유효하지 않다는 것입니다. 밑줄을 제거하는 것이 옵션이 아닌 경우 서버 블록에 추가 할 수 있습니다.
underscores_in_headers on;
이것은 기본적으로 @Fleshgrinder 답변에 대한 @ kishorer747 주석의 복사 및 붙여 넣기이며 솔루션은 다음에서 제공됩니다. https://serverfault.com/questions/586970/nginx-is-not-forwarding-a-header-value-when-using -proxy-pass / 586997 # 586997
필자의 경우 nginx의 응용 프로그램이 완벽하게 작동하는 것처럼 여기에 추가했지만 ngix가 플라스크 앱과 클라이언트 사이에 있으면 플라스크 앱이 더 이상 헤더를 볼 수 없습니다. 디버그하는 데 시간이 많이 걸렸습니다.
참조 URL : https://stackoverflow.com/questions/19751313/forward-request-headers-from-nginx-proxy-server
'programing' 카테고리의 다른 글
최신 버전의 Android를 타겟팅하지 않음 (0) | 2021.01.18 |
---|---|
moq의 속성에 값을 할당하는 방법은 무엇입니까? (0) | 2021.01.18 |
Intent.FLAG_ACTIVITY_CLEAR_TASK와 Intent.FLAG_ACTIVITY_TASK_ON_HOME의 차이점 (0) | 2021.01.18 |
Jenkins 콘솔 출력에서 에코 끄기 (0) | 2021.01.18 |
Laravel 5.1로 원시 쿼리를 실행하는 방법은 무엇입니까? (0) | 2021.01.18 |