aws 를 쓰던 아기자기한 라즈베리파이를 쓰던 


본인이 가지고 있는 서버에 컨테이너를 올렸다면 

이제 도메인도 사고 ssl 을 연결해서 

" 아 ㅋㅋ 내가 만든 사이트는 안전해요 " 라는 표식을 남겨야한다  (https 통신을 위함)

aws 는 acm 으로 ssl 을 적용할 수 있지만 

이작업은 여간 힘든게 아니다 

로드밸런서랑 뭐 이것저것 그냥 건드려야할게 파멸적으로 많기 때문이다 

필자도 최근에 이거가지고 쌩쇼를 한적이 있다. 

한대의 서버에 2개의 도메인을 연결하기  (나의 똥꼬쇼가 여기에 담겨있다) 

최근에 친구가 "너왜 이렇게 똥꼬쇼함? ㅋㅋ 걍 npm 쓰셈" 이라고 해서 

npm 을 찾게 되었다 (nodeJS 에서 쓰는 npm 명령어가 아닌  nginx proxy manager 이다) 

동작 원리는 아래의 링크를 참고해주길 바란다. 
https://velog.io/@reasonoflife39/NPMNginx-Proxy-Manager-%EB%8F%99%EC%9E%91-%ED%9D%90%EB%A6%84%EA%B3%BC-%EC%97%AD%ED%95%A0

일단 먼저 npm 공식홈페이지를 들어가보자 

https://nginxproxymanager.com/guide/

들어가면 "아니 이거 어케 동작시킴?" 에 대한 절차가 있다 


일단 위의 사진을 보기전에 일단 "무지성 따라해봐라 리또 맹키"로 말해주겠다.

1. "내가 컨테이너를 올릴 서버에" 

docker 와 docker copmse 를 설치해야한다 

그다음 내가 가지고 있는 서버에 ssh 접속해서 

nginx-proxy-manager 라는 폴더를 만들고 


이폴더 안에 

data , letsencrypt 라는 폴더를 또 만들고 

그다음 사진에 있던 yml 파일을 고대로 복사해서 사진과 같은 구조로 정리해놔야함 
(저는 맥북이라 termius 쓰고 있음)


2. 그다음  포트포워딩을 설정해줘야하는데 

yml 파일을 고대로 복사해서 넣었다면 

포트를 2개를 열어주면 된다 

443 포트는 외부와 내부 전부 443으로 설정해주고 

80과 81 번 포트는 내부 외부 전부

80~81 로 똑같이 설정 해줘라 (1개의 설정에 2개의 포트를 쓰는거임)

3. 그다음 ssh 로 서버 접속후 nginx-proxy-manger 라는 폴더가 있는 위치로 들어가서 

아래와 같은 명령어로 시동 시켜주면 된다 

docker-compose up -d


플러그인 버전 쓰는 사람은 아래의 명령어를 써라 

docker compose up -d

그다음 docker ps 명령어로 켜지고 있는지 확인을 해보자 


만약 켜져 있다면 아래와 같이 포트가 마구 마구 열려 있을거다 


4.  여기까지 완료 했다면
이제 님 IP:81 로 들어가보면 


이런 화면을 보게되는데 

??? 저 아이디랑 이런거 만든적 없음 ㅋㅋㅋ




당황하지 말고 침착함을 유지하면서 
다시 npm 공홈들어가서 디폴트로 접속가능한 계정을 확인하면? 









여기서 users 들어가서 접속 계정 바꿔주샘 ㅋㅋ 

5. 이제 도메인 사야함 


저 거지라 돈없어요 

ㅇㅋ 그럼 

https://xn--220b31d95hq8o.xn--3e0b707e/ (내 도메인 한국) 

여기가서 도메인 하나 파셈 ㅋㅋ  꽁짜로 3개월간 사용 가능하다리또 

도메인 설정 할줄 모른다고요? 




위의 사진 처럼 DNS 에다가 님 외부아이피 하나 박으면 끝임 

그담 이제 아까와 다르게 

npm 관리설정 페이지를 

ip:81 이 아닌 
도메인:81 로 접속해서 도메인 잘 적용되었는지 확인해야함




6. 들어가서 SSL Certifcates 항목 들어가서 

Add SSL Certifcate 눌러보샘 




누르면 letsencrypt 눌러서 아래처럼 뭔가 툭튀어 나옴 
여기에 도메인 산거 넣고 
email Address 에는 아까 접속 계정 설정한 email 넣으면됨 



먼저 일단 도메인 테스트를 위해 test Server 버튼 눌러야함 



이렇게 뜨면 ㅇㅋ 이제 ssl 인증서 동의 활성화 하고 SAVE 버튼 누르샘 




그럼 아마 높은 확률로 이런 에러 메세지가 튀어 나올거임 




사실 저기 공짜 도메인 주는곳이 워낙 허벌이라 ssl 인증서 받을때 통제 많이 당함 
한 1~2시간 정도 기달렸다가 (많이기달려봐야 3시간) 다시 인증하면 됨 
이거 싫으면 그냥 가비아나 카페24가서 도메인 하나 사면 바로 인증됨 
인증 되고 나서 7번 과정 진행해주면 best

7. 여기까지 왔음 일단 기본적인 설정은 전부 끝났으니 
내가 원래 올리고자 하는 컨테이너 하나 올려줘 

8. 그다음 npm 관리자 페이지에서 Hosts 들어가서 




Add proxy Host 클릭 ㄱㄱ 



여기에 도메인 구매한거 넣고 


외부 IP랑  올린 컨테이너의 포트번호 적고  ssl 들어가서 

아래처럼 SSL 설정해주고 
npm 접속 계정 이메일 넣고 설정해주면 끝남 




최종적으로 이런식으로 이제 설정된거 볼수있음 




그다음 이제 https 로 시작하는 님이 구매한 도메인으로 접속해서 페이지 나오면 끝임 


이과정은 acm 보다 쉽고 
그리고 이과정을 전부 제대로 진행했다면 

letsencrypt 의 귀찮은 갱신도 이 npm 이 알아서 갱신해주니까 딱히 건드릴것도 없음 ㅋㅋ 


npm 해야겠지?


ssl 인증까지 해서 너만의 프로젝트를 완료해보자