nginx 역방향 프 록 시 해결 헤더 전송 불가

3092 단어 linuxnginxcentos7LNMP
nginx 를 사용 하여 부하 균형 이나 http 대 리 를 할 때 http header 가 전송 하지 않 는 문제 에 부 딪 혔 습 니 다.
설정 에 원본 ip 과 host 만 퍼 가기 설정 되 어 있 습 니 다.
        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header     X-Forwarded-Server $host;
물론 저도 궁금 합 니 다. 왜 이렇게 오래 걸 렸 는 지 이 문 제 를 전달 하지 못 하고 요청 한 내용 도 옳 습 니 다.
나중에 나 는 nginx. conf 에서 error 의 로그 등급 을 debug, error 로 바 꾸 었 다.log logs/error.log debug;읽 기 정 보 는 다음 과 같 습 니 다.
2017/11/20 14:27:56 [info] 5625#0: *1078154 client sent invalid header line: "access_token: JhbGciOiJSUzI1NiJ9.eyJqdGkiOiJKV1Q6NmJlNmE3ODUtMmNiZS00NTkwLThkYmQtMzI4MTI0ZTRjZDBiIiwiaWF0IjoxNTExMTU3NTkzLCJzdWIiOiJ7XCJjcmVhdGVUaW1lXCI6XCIyMDE3LTA3LTEwIDA5OjU5OjMyXCIsXCJlbWFpbFwiOlwiYWRtaW5AbTJjLmNvbVwiLFwibmFtZVwiOlwiYWRtaW5cIixcIm5vdGVcIjpcIm5vdGVcIixcInBlcm1pc3Npb25LZXlcIjpcIkpXVDpTWVNURU06UEVSTUlTU0lPTpkYmRjMjQ1ZGM5Mjg0MmY3OTAxY2ZjNGZiOWU3ZmY1OVwiLFwicm9sZUlkXCI6XCIxXCIsXCJ0ZWxOb1wiOlwiMTM4Mjg3NDk3NTVcIixcInVwZGF0ZVRpbWVcIjpcIjIwMTctMTEtMTcgMTY6MTY6MTdcIixcInVzZXJJZFwiOlwiNmM3MTFlOGUzZjA1MTIzNDUwZDgzMGI5NGM3MDRjY2E3OTlmXCIsXCJ1c2VyTmFtZVwiOlwiYWRtaW5cIixcInVzZXJOb1wilwiMVwiLFwidXNlclN0YXR1c1wiOlwiTk9STUFMXCJ9IiwiZXhwIjoxNTExMjAwNzkzfQ.ZrUmlI0FSC0FjUwXvReuj4YlHYyCdJrDx9e9B1OEazO3avmMEsGjZoWxxxxxxxAbtqv5sFa64_U0GL-RdE9fkQRWE9k8pSjYs34mOYI1qN_m3ZdbbEGioJ4OrY_IJj3qax5BPP9g9AejhFM9y8Z7zt7SV6YU" while reading client request headers, client: 10.0.40.102, server: api.xxxxxx.com, request: "GET /xxx.operxxxx/role/auth/get/modules?systemAccessToken=JhbGciOiJSUzI1NiJ9.eyJqdGkiOiJKV1Q6NmJlNmE3ODUtMmNiZS00NTkwLThkYmQtMzI4MTI0ZTRjZDBiIiwiaWF0IjoxNTExMTU3NTkzLCJzdWIiOiJ7XCJjcmVhdGVUaW1lXCI6XCIyMDE3LTA3LTEwIDA5OjU5OjMyXCIsXCJlbWFpbFwiOlwiYWRtaW5AbTJjLmNvbVwiLFwibmFtZVwiOlwiYWRtaW5cIixcIm5vdGVcIjpcIm5vdGVcIixcInBlcm1pc3Npb25LZXlcIjpcIkpXVDpTWVNURU06UEVSTUlTU0lPTjpkYmRjMjQ1ZGM5Mjg0MmY3OTAxY2ZjNGZiOWU3ZmY1OVwiLFwicm9sZUlkXCI6XCIxXCIsXCJ0ZWxOb1wiOlwiMTM4Mjg3NDk3NTVcIixcInVwZG0ZVRpbWVcIjpcIjIwMTctMTEtMTcgMTY6MTY6MTdcIixcInVzZXJJZFwiOlwiNmM3MTFlOGUzZjA1MTIzNDUwZDgzMGINGM3MDRjY2E3OTlmXCIsXCJ1c2VyTmFtZVwiOlwiYWRtaW5cIixcInVzZXJOb1wiOlwiMVwiLFwidXNlclN0YXR1c1wiOlwiTk9STUFMXCJ9IiwiZXhwIjoxNTExMjAwNzkzfQ.ZrUmlI0FSC0FjUwXvReuj4YlHYyCdJrDx9e9B1OEazO3avmMEsGjZoWxxxxxxxAbtqv5sFa64_U0GL-RdE9fkQRWE9k8pSjYs34mOYI1qN_m3ZdbbEGioJ4OrY_IJj3qax5BPP9g9AejhFM9y8Z7zt7SV6YU&roleId=SYSRC849xxxC7xx5CA64D349D6A03AAE2C511F4 HTTP/1.1", host: "api.xxxxxxx.com"

클 라 이언 트 가 잘못된 header 정 보 를 보 내 는 것 을 알려 줍 니 다.
원래 header name 의 문 자 를 제 한 했 습 니 다. 기본 underscoresin_headers 는 off 로 header name 에 밑줄 이 포함 되 어 있 으 면 무시 합 니 다.
마침 내 가 정의 한 헤더 에는 밑줄 이 사용 되 어 있 었 다.
 
처리 방법:
 
1: 설정 중 http 부분 에 underscores 추가in_headers on; 배치 하 다.
2: 밑줄 기호 대신 마이너스 -,이런 변태 문 제 를 피하 다.nginx 기본 값 으로 밑줄 을 무시 하 는 데 는 이유 가 있 을 수 있 습 니 다.
http 또는 server 에 추가 가능
문법: underscoresin_headers on | off 기본 값: off 사용 필드: http, server 는 header 필드 에 밑줄 을 그 을 수 있 습 니까?
참고:
  http://www.ttlsa.com/nginx/nginx-proxy_set_header/
  http://blog.csdn.net/wx_mdq/article/details/10466891

좋은 웹페이지 즐겨찾기