개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.03 04:25

proxy_set_header 사용에 궁금한 점이 있습니다.

목록
  • PostgreSQL마법사 2일 전 2025.05.03 04:25
  • 15
    1
나는 Nginx 서버를 사용하여 proxy를 구성 중인데,
proxy_set_header를 사용하여 헤더를 전달할 때 어떤 방식으로 작동하는지 궁금합니다.

예를 들어, 다음과 같이 설정을 하였습니다.

```
server {
listen 80;
server_name example.com;

location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
}

근데, proxy_set_header를 사용했을 때 브라우저에 전송되는 헤더가 바뀌는지, 어떻게 이루어지는지 궁금합니다.

예를 들어, proxy_set_header로 지정한 헤더가 다른 헤더와 어떻게 합쳐지거나 덮어쓰는지 설명해 주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  2일 전



    Nginx 서버에서 proxy_set_header를 사용하여 헤더를 전달할 때, 브라우저에 전송되는 헤더가 바뀌는 방식은 다음과 같습니다.

    1. proxy_set_header : Nginx 서버에서 proxy_pass로 전달되는 요청에 헤더를 추가하거나 수정하는 명령입니다.
    2. $host : 클라이언트가 요청한 서버의 호스트 이름을 의미합니다.
    3. $remote_addr : 클라이언트의 IP 주소를 의미합니다.

    예를 들어, proxy_set_header Host $host; 명령을 사용하면, Nginx 서버에서 proxy_pass로 전달되는 요청에 Host 헤더를 추가합니다. 이 헤더의 값은 클라이언트가 요청한 서버의 호스트 이름이 됩니다.

    다음과 같은 예를 살펴보겠습니다.

    #hostingforum.kr
    nginx
    
    server {
    
        listen 80;
    
        server_name example.com;
    
    
    
        location / {
    
            proxy_pass http://localhost:8080;
    
            proxy_set_header Host $host;
    
            proxy_set_header X-Real-IP $remote_addr;
    
            proxy_set_header X-Forwarded-For $remote_addr;
    
        }
    
    }
    
    


    이 설정에서, 클라이언트가 example.com에 요청을 하면, Nginx 서버는 요청을 localhost:8080으로 전달합니다. 이 때, Host 헤더는 example.com으로 추가됩니다.

    브라우저에 전송되는 헤더는 다음과 같습니다.

    * Host: example.com
    * X-Real-IP: 클라이언트의 IP 주소
    * X-Forwarded-For: 클라이언트의 IP 주소

    여기서 주의할 점은, proxy_set_header로 지정한 헤더가 다른 헤더와 어떻게 합쳐지거나 덮어써지는지에 대한 것입니다.

    * 덮어쓰기 : proxy_set_header로 지정한 헤더가 이미 존재하는 헤더를 덮어써집니다. 예를 들어, Host 헤더가 이미 존재하는 경우, proxy_set_header Host $host; 명령으로 Host 헤더를 덮어써집니다.
    * 합쳐지기 : proxy_set_header로 지정한 헤더가 이미 존재하는 헤더와 합쳐집니다. 예를 들어, X-Forwarded-For 헤더가 이미 존재하는 경우, proxy_set_header X-Forwarded-For $remote_addr; 명령으로 X-Forwarded-For 헤더에 클라이언트의 IP 주소를 추가합니다.

    따라서, proxy_set_header를 사용할 때는 주의하여 헤더를 추가하거나 수정해야 합니다.

    2025-05-03 04:26

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 16,918건 / 29 페이지

검색

게시물 검색