Nginx에서 sub-directory에 proxy pass 설정하기

btsync 서버를 띄우면 기본적으로 0.0.0.0:8888에 Web UI가 바인딩 되는데 아무리 http basic auth를 지원한다지만 어차피 평문으로 전송되기에 별 의미는 없다. 그래서 nginx에 있는 reverse proxy 기능을 이용해서 /btsync/에 물려보기로 했다. 이러면 https로 통신하니 조금 안전해지기 때문이다.
설정은 대충 아래와 같다.

location /btsync/ {
    proxy_pass http://localhost:8888/;
    proxy_redirect / /btsync/;
}

처음에 proxy_redirect를 써주지 않았는데 이러면 btsync에서 처음에 302 redirect를 주는데 이걸 nginx에서 그대로 전달하기 때문에 /btsync/gui/로 가야 할 것을 /gui/로 가게 된다. 그래서 저렇게 써야 하는데 왜 nginx는 저렇게 설계했나 모르겠다. 저 정도는 써주지 않아도 알아서 잘 동작해야 하는 것 아닌가.

nginx로 넘어오고나서 저렇게 중복해서 적어줘야 하는 게 많은 것 같아 아쉽다.

kjwon15

I'm a hacker, I want to improve life.

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.