Nginx

[Nginx] 특정 헤더 값이 확인이 안 되는 경우 - underscores_in_headers

2022. 5. 24. 02:12
목차
  1. 문제점
  2. 해결 방법
  3. HTTP 헤더 naming convention

Spring Boot와 React를 사용하여 프로젝트를 진행하는 도중 배포 환경에서 문제가 생겼다. Spring Security와 JWT를 이용해 회원 서비스를 구현했는데 프론트 엔드의 요청에 token값이 서버로 전달되지 않는 문제가 발생했다. 이유는 Nginx에 있었다. 

문제점

Nginx는 HTTP의 헤더에서 언더스코어'_'를 제거한 뒤 Spring Boot 서버로 보낸다. 이유는 언더스코어'_'와 대시'-'가 모두 언더스코어로 매핑되기 때문이다. 우리는 헤더를 'access_token'이라고 지었다. 이 때문에 헤더가 제거된 채 서버에 요청을 보낸 것이 문제였다. 해당 문제는 간단하게 해결할 수 있다.

해결 방법

/etc/nginx/nginx.conf 파일에

http ➡ server 위치에 아래 문장을 넣어주면 언더스코어를 제거하지 않는다.

underscores_in_headers	on;

위치 참고

헷갈리면 내가 작업하는 nginx.conf에서 위치를 알 수 있는 이미지를 참고하면 도움이 될 것이다.

HTTP 헤더 naming convention

HTTP 표준 얘기가 나와서 사용자 정의 HTTP Header를 지을 때 지켜야 할 규칙을 알아보았다. RFC6648이라는 표준에서 헤더 앞에 X-를 붙이게 하는 것을 제안했지만 현재는 권장되지 않는다. 프로젝트에 맞는 이름을 지으면 될 것 같다. 하지만 Nginx도 그렇고 표준 헤더들은 대시'-'로 이루어져 있으니 이를 따르자.

참고

 

Why do HTTP servers forbid underscores in HTTP header names

I had a problem with a custom HTTP SESSION_ID header not being transfered by nginx proxy. I was told that underscores are prohibited according to the HTTP RFC. Searching, I found that most server...

stackoverflow.com

 

 

Custom HTTP headers : naming conventions

Several of our users have asked us to include data relative to their account in the HTTP headers of requests we send them, or even responses they get from our API. What is the general convention to...

stackoverflow.com

 

  1. 문제점
  2. 해결 방법
  3. HTTP 헤더 naming convention
acisliver
acisliver
acisliver
와당탕탕 개발놀이터
acisliver
전체
오늘
어제
  • 분류 전체보기 (65)
    • 회고 (11)
    • Spring (3)
    • 알고리즘 (21)
    • Java (2)
    • DevOps (2)
    • Shell (2)
    • Nginx (1)
    • Database (22)
    • Project (1)

블로그 메뉴

  • 태그
  • 방명록
  • GitHub
  • Notion

공지사항

인기 글

태그

  • FOSSLight
  • 풀스택
  • 오픈소스
  • 풀 테이블 스캔
  • 풀 인덱스 스캔
  • innodb
  • DevOps
  • dp
  • binarySearch
  • 프로그래머스
  • 프리코스
  • 이분탐색
  • 코딩테스트
  • Leetcode
  • 오픈소스 컨트리뷰톤
  • 카카오
  • mysql
  • 구름톤 트레이닝
  • Shell
  • 우아한테크코스
  • 인덱스
  • 알고리즘
  • Bash
  • 이진탐색
  • Spring
  • Java
  • FuntionalInterface
  • 백준
  • spring boot
  • 자바

최근 댓글

최근 글

hELLO · Designed By 정상우.
acisliver
[Nginx] 특정 헤더 값이 확인이 안 되는 경우 - underscores_in_headers
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.