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/로 리다이렉션 해버리라는 설정이다.

  1. 집사 2020.05.14 20:12

    좋은 글 감사합니다. 브릿지 모드는 문제가 없는데 호스트 모드일경우 포트 때문에 문제가 생기는거 같은데요
    시놀이 80,443포트를 점유하는 문제가 있는거 같은데.. 이거 해결 방법은 없을 까요?
    브릿지 모드로 쓰면 워드프레스 같은경우 real ip도 안찍히네요.

    • BlogIcon joyfuI 2020.05.15 00:14 신고

      jlesage의 이미지는 80, 443포트 대신에 8080, 4443포트를 사용해서 포트 점유 문제가 없습니다. (이게 원본 이미지보다 저 이미지를 쓰는 가장 큰 이유죠)

  2. 궁금 2020.07.11 18:32

    서버의 특정 폴더로 포워딩하려면 세팅을 어떻게 해야 할까요?

    • BlogIcon joyfuI 2020.07.11 23:10 신고

      특정 폴더라는게 url인가요? 그럼 글 맨 아래꺼 조금만 수정하시면 될 거 같네요.

  3. 궁금 2020.07.12 05:45

    쓰신글 참조해서
    http://www.ppomppu.co.kr/zboard/view.php?id=nas&page=1&divpage=8&no=39843

    이렇게 설정해서 쓰고 있습니다. 폴더가 2중으로 보이는 문제를 해결하지 못해서 댓글 남겼습니다.

    • BlogIcon joyfuI 2020.07.12 11:55 신고

      아 폴더가 webdav 같은 걸 이야기하신 거군요.
      저 설정도 아무것도 모르는 상태에서 이것저것 시도하면서 겨우 성공한 거라 잘 모르겠습니다. 일단 원하는대로 작동해서 올리긴했는데 맞게 설정한 건지도 잘...
      링크 사진을 보니까 Custom locations이 설정되어 있는데 필요한 설정이신가요? 저는 딱히 저걸 설정하지 않아서요.

  4. 궁금 2020.07.12 12:30

    그 설정을 하지 않으면 동작하지 않더라구요. 이것 저것 바꿔보고 되는 경우가 저거라서...

  5. BlogIcon 보아요 2020.07.14 18:19 신고

    webdav 연결 설정 찾았습니다.

    https://boayo.tistory.com/44

  6. raputa 2020.07.26 18:08

    설정하고나면 포토스테이션이 접속이 안되네요..죄송합니다 찾고자하는 페이지를 발견하지 못했습니다. 이렇게요.
    npm에서 접속방법이 있나요?

    • BlogIcon joyfuI 2020.07.27 00:16 신고

      https://www.lesstif.com/life/synology-nas-photo-station-76709991.html
      검색하니 이런 글이 나오는데 확인해보시겠어요?

+ Recent posts