Nginx Proxy 설정

Nginx Proxy 설정해보자!

설정전에 간단한 개념정리

1. what?

Proxy 서버란? -> 중계서버(서버로 들어오는 request 중계)

위키 proxy서버란?

2. why?

  1. 보안
    • 익명의 사용자가 서버에 접근하는 것을 막음
  2. 속도

    • Proxy 서버로 들어오는 요청을 캐싱함
    • cache를 저정하기 때문에 동일한 요청이 들어오게 될경우 cache 사용 가능
    • 서버의 불필요한 자원 낭비 방지
  3. 접근 우회

    • 보안적인 이슈로 인해 서버에 접근하지 못할 경우 우회해서 다른 서버들이 사용할수 있게 요청 전달
  4. ACL (Proxy Server에 접속 할 수 있는 범위를 설정하는 옵션)

    • 사이트 접근에 대한 접근 정책을 정의 가능
  5. Log/Audit

 3. Proxy 실습

우선 Proxy 설정을 하기전에 로컬에서 기동시킬 간단한 서버가 필요

각자 취향에 맞게 노드나 파이썬이나 스프링이나 아무거나 상관이 없음

서버 port 7077롤 셋팅한 간단한 hello world

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController

@RestController
class HelloController{



@GetMapping("/")
fun getSomething(): String {

return "hello world! welcome to visit my site"
}

@GetMapping("/test")
fun test(): String {

return "test test test"
}
}

nginx.conf 파일 변경

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
server {
listen 5000;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {

proxy_pass http://localhost:7077;
proxy_http_version 1.1;

#root html;
#index index.html index.htm;
}
  1. http://localhost:7077 으로 proxy 적용
  2. proxy_http_version은 HTTP/1.1

nginx -s reload 실행 후

localhost:5000접근시 nginx 초기 페이지가 아닌 ‘hello world! welcome to visit my site’ 노출 확인

location 을 추가해보자

1
2
3
4
5
location /test {

proxy_pass http://localhost:7077/test;
proxy_http_version 1.1;
}

-> localhost:5000/test로 들어오게 되면 http://localhost:7077/test 호출

‘test test test’ 문구 정상 노출 확인

사실 Nginx 공홈 에 너무 좋은 자료가 많다.. 다해보고 싶지만 우선 여기까지