NPM은 엔진엑스의 프록시 기능을 편하게 세팅할 수 있게 하는 애플리케이션이다. 엔진엑스가 포함되어 있어 따로 웹서버를 설치할 필요는 없다.

원래는 순정 기능이 있으면 순정 기능을 사용하자 주의라서 시놀로지의 역방향 프록시를 사용하고 있었는데 최근에 도커로 이것저것 해보면서 SSL 인증서 관리가 매우 귀찮아졌다. 와일드카드 인증서를 발급받으면 한 방에 해결이지만 발급 방법도 복잡해서 포기했다. 대신 npm으로 눈을 돌렸는데 사용해보니 꽤 괜찮다.

설치

원래는 jc21/nginx-proxy-manager가 원조 이미지인데 얘는 db를 따로 설치해야 한다. 뭐 저번에 설치한 MariaDB를 써도 되겠지만 이번엔 npm과 db를 묶은 올인원 이미지인 jlesage/nginx-proxy-manager를 사용하기로 했다.

1. 시놀로지 패키지 센터에서 Docker를 설치한다.

2. Docker를 열고 jlesage/nginx-proxy-manager 이미지를 다운받는다.

3. 다운받은 jlesage/nginx-proxy-manager 이미지를 선택해서 컨테이너 생성을 시작한다.

4. 고급설정을 눌러서 자동 재시작에 체크해주고

5. 볼륨 탭에서 /config 경로를 적당한 위치에 마운트 해준다.

6. 네트워크 탭에서 Docker 호스트와 동일한 네트워크 사용에 체크해준다.

원래 메뉴얼에는 host 말고 bridge를 사용하고 포트 설정에서 8181, 8080, 4443 포트를 연결해주는데 아무래도 npm은 네트워크 성능이 중요하다고 생각돼서 host 네트워크를 사용하도록 세팅했다. (bridge는 nat 과정 때문에 네트워크 성능이 약간 감소한다고 한다.)

이 경우 시놀로지에서 8181, 8080, 4443 포트를 사용 중이면 안 된다. 나는 저번에 설치한 과카몰레가 8080 포트를 사용 중이라 과카몰레의 포트 설정을 다른 포트로 바꿨다.

7. 참 쉽죠?

http://<nas 주소>:8181/로 접속하면 처음에 로그인 화면이 뜨고

초기 이메일과 패스워드는 admin@example.com / changeme이다. 이 계정으로 로그인하면 바로 이메일 주소와 패스워드를 바꾸는 창이 뜨니 바꾸면 된다.

리버스 프록시 설정은 Proxy Hosts로 들어가서 설정할 수 있다.

요런 식으로 알아서 잘(...) 설정하면 된다.

npm이 편리한 점은 이렇게 ssl 인증서를 바로 만들 수 있다는 점이다.

이렇게 NAS에 대한 프록시 설정을 완료하고 공유기로 가서 80 포트는 nas의 8080 포트로, 443 포트는 nas의 4443 포트로 포트 포워딩을 해주면 된다.

이러고 나는 기존 시놀로지 역방향 프록시, 사용자 지정된 도메인을 전부 해제했다.

npm을 사용하면서 아래와 같은 활용도 가능해졌다.

저번에 설치한 과카몰레는 접속 시에 반드시 /guacamole를 붙여줘야 한다. 없이 접속하면 그냥 톰캣 화면이 뜬다...

이걸 어떻게 자동으로 이동시킬 방법이 없을까 했는데 npm으로 설정이 가능했다.

이렇게 Advanced 탭에서 Nginx conf를 설정할 수 있는데 아래 설정을 추가하면 된다.


location = / {
    return 301 $scheme://$server_name/guacamole/;
}

간단히 설명하자면 루트 도메인으로 접속 시 /guacamole/로 리다이렉션 해버리라는 설정이다.

+ Recent posts