nginx rewrite

nginx rewrite

Posted by Damin on July 28, 2020

환경

  • Ubuntu 18.04

상황

Nginx 를 reverse proxy 로 사용하고 있다

Test Server를 구축해서 같은 Ubuntu에 띄우려고 했다

/test/user or main/~~~ 의 요청이 들어오면

/user or main/~~~ 의 요청으로 바꿔줘야 했다

해결

1
2
3
4
5
6
7
8
location /test/user{
                rewrite ^/test(.*)$ $1 break;
                proxy_pass "http://localhost:1111";
        }  
location /test/main{
                rewrite ^/test(.*)$ $1 break;
                proxy_pass "http://localhost:1112";
        }  
  • 각 location 에 rewrite ^/test(.*)$ $1 break 구문 추가

  • /test 이후로 오는 URI로 다시 쓰겠다 -> $ 로 칭한다

  • $1 = 위의 값을 가르킨다

ex) localhost:9999/test/user/find/all -> localhost:1111/user/find/all

  • 적용한 후에 꼭 nginx를 reload 해줘야 한다 (이거 때문에 삽질했다…)

  • nginx -s reload