nginx rewrite 설정

nginx-logo

nginx 에 rewrite 설정을 적용하는 문제 때문에 퇴근까지 늦추고.. 아놔~ 퇴근 후에 집에 와서도 설정에는 문제가 없는 듯 한데.. 왜 안될까? 계속 생각하다가 순간 머리를 스쳐가는 생각에 설정을 약간 수정하니 제대로 작동이 된다. 이래서 기본이 중요한 것이구나.. 또 한번 느끼게 됐다. nginx 에 대해서 문서를 틈틈이 봐둬야만 할 것 같다. 서버에서 nginx 를 사용하는데.. 설정할 때마다 고생하니.. 큰 일이다.

이번에 적용한 설정은 정말 간단한 것이다. provider 라는 디렉토리를 service 라는 디렉토리로 변경해서 접속을 하도록 하면 되는 것이다. 너무 쉽게 생각하고 덤볐다가 퇴근까지 늦어지는.. 결국은 퇴근하고 집에 와서 해결하는 어쩌구니 없는 사태가 벌어졌다. 앞으론 뭐든 쉽게 생각하지 않는다.

rewrite ^/main/provider/(.*)$ /main/service/$1 permanent;

정규식에서 ^는 문자열의 처음이라는 뜻인데.. nginx 에서도 같은 의미가 아닐까 싶다. 그런데 이걸 생각하지 않고 ^/provider/(.*)$ /service/$1 permanent; 이렇게 하니까 안되는 것이었다. 도대체 왜 그랬을까? 다음엔 이런 실수는 절대로 하지 않을 것 같다. 이제 대충 돌아가는 것을 알게된 듯 하다.

참고로 rewrite 설정 끝에 permanent 와  last 를 사용할 수 있는데 last 를 사용하면 주소표시줄의 url은 접속한 주소가 그대로 표시되고 바뀐 url은 표시가 되지 않는다. 반면 permanent 를 사용하면 바뀌 url 로 표시가 된다. 이 점이 다르다. 이런 내용이 문서에 있었는 모르겠지만 이것저것 테스트하다 보니 뜻하지 않게 알게 됐다. 뜻하지 않는 수확이 있었다고는 하지만 오늘 같은 삽질은 이제 그만!!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.