라이브러리

[NGINX] proxy_pass - 요청을 다른 서버로 전달할 때 사용할 프록시 서버의 URL을 설정합니다.


NGINX에서 proxy_pass는 요청을 다른 서버로 전달하는 기능입니다. NGINX는 요청을 받고, 원하는 서버로 전달하여 응답을 받은 후, 클라이언트에게 응답을 전달합니다. proxy_pass는 NGINX의 강력한 기능 중 하나로, 로드 밸런싱, 캐싱, 보안 등 다양한 기능을 제공합니다.

proxy_pass의 동작 방식


1. 클라이언트가 NGINX 서버에 요청을 보냅니다.
2. NGINX 서버는 요청을 받고, proxy_pass를 사용하여 원하는 서버로 요청을 전달합니다.
3. 원하는 서버는 요청을 처리하고, 응답을 보냅니다.
4. NGINX 서버는 응답을 받고, 클라이언트에게 응답을 전달합니다.

proxy_pass의 예제


# 예제 1: 단순한 proxy_pass


#hostingforum.kr
nginx

http {

    upstream backend {

        server localhost:8080;

    }



    server {

        listen 80;

        location / {

            proxy_pass http://backend;

            proxy_set_header Host $host;

            proxy_set_header X-Real-IP $remote_addr;

        }

    }

}



이 예제에서는 NGINX 서버가 8080 포트의 localhost 서버에 요청을 전달합니다. 클라이언트가 NGINX 서버에 요청을 보냈을 때, NGINX 서버는 요청을 localhost:8080 서버로 전달하고, 응답을 받은 후 클라이언트에게 응답을 전달합니다.

# 예제 2: proxy_pass에 URL 매핑


#hostingforum.kr
nginx

http {

    upstream backend {

        server localhost:8080;

    }



    server {

        listen 80;

        location /api {

            proxy_pass http://backend;

            proxy_set_header Host $host;

            proxy_set_header X-Real-IP $remote_addr;

        }

        location /static {

            root /var/www/static;

        }

    }

}



이 예제에서는 NGINX 서버가 8080 포트의 localhost 서버에 /api 경로의 요청을 전달합니다. /static 경로의 요청은 NGINX 서버에서 직접 처리합니다.

# 예제 3: proxy_pass에 캐싱


#hostingforum.kr
nginx

http {

    upstream backend {

        server localhost:8080;

    }



    server {

        listen 80;

        location / {

            proxy_pass http://backend;

            proxy_set_header Host $host;

            proxy_set_header X-Real-IP $remote_addr;

            proxy_cache_valid 200 1m;

            proxy_cache_valid 404 1m;

            proxy_cache my_cache;

            proxy_cache_key $request_uri;

        }

    }

}



이 예제에서는 NGINX 서버가 8080 포트의 localhost 서버에 요청을 전달하고, 캐시를 사용하여 응답을 저장합니다. 캐시된 응답은 1분 동안 유효합니다.

proxy_pass의 옵션


- `proxy_pass`: 요청을 전달할 서버의 URL을 지정합니다.
- `proxy_set_header`: 요청에 헤더를 추가합니다.
- `proxy_cache_valid`: 캐시된 응답의 유효 시간을 지정합니다.
- `proxy_cache`: 캐시를 사용할 때, 캐시의 이름을 지정합니다.
- `proxy_cache_key`: 캐시 키를 지정합니다.

proxy_pass의 장점


- 로드 밸런싱: NGINX 서버가 여러 서버에 요청을 분산하여 처리할 수 있습니다.
- 캐싱: NGINX 서버가 캐시를 사용하여 응답을 저장하여, 요청을 처리하는 시간을 단축할 수 있습니다.
- 보안: NGINX 서버가 요청을 검사하여, 악성 요청을 차단할 수 있습니다.

proxy_pass의 단점


- 복잡한 설정: proxy_pass를 사용하여, 복잡한 설정이 필요할 수 있습니다.
- 캐시 오류: 캐시 오류가 발생할 수 있습니다.

결론


NGINX의 proxy_pass는 요청을 다른 서버로 전달하는 강력한 기능입니다. proxy_pass를 사용하여, 로드 밸런싱, 캐싱, 보안 등 다양한 기능을 제공할 수 있습니다. 하지만, proxy_pass를 사용할 때, 복잡한 설정이 필요할 수 있습니다. 따라서, proxy_pass를 사용하기 전에, 충분한 테스트와 검증을 수행해야 합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 25 페이지

검색

게시물 검색