이번 포스트에서는 생성한 인스턴스를 nginx proxy로 관리하는 방법에 대해서 설명합니다.
Ubuntu Instance 기본 설정
1. 기본 패키지 업데이트
| |
2. Swap Memory 생성
Free tier의 메모리는 1G 이므로 스왑 메모리를 생성하도록 하겠습니다.
| |
생성된 스왑 메모리를 확인합니다.
| |
재부팅해도 스왑 메모리가 유지되도록 수정합니다.
| |
아래 내용을 추가합니다.
| |
추가한 후의 모습은 다음과 같습니다.
| |
3. 시간 설정
| |
Nginx Proxy Manager
1. iptable 초기화
oracle에서 기본적으로 설치한 iptable 규칙을 초기화합니다.
| |
2. docker 설치
공식 홈페이지를 참고해 docker를 설치합니다.
- Setup repository
1 2 3 4 5 6 7sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release - Add Docker’s official GPG key
1curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg1 2 3echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - Install docker
1 2sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io - 실행 확인
1docker ps- 실행이 안될 경우 포스트를 참고하세요.
3. docker-compose 설치
공식 홈페이지를 참고해 docker-compose를 설치합니다.
- Download Docker Compose
1sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose - Apply permission
1sudo chmod +x /usr/local/bin/docker-compose - Add Path
1sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose - Test
1docker-compose --version
4. docker-compose.yaml 작성
- 폴더 생성
1mkdir ~/npm; cd ~/npm docker-compose.yaml작성
| |
- docker-compose 실행
1docker-compose up -d - 실행 확인로그의 제일 마지막에 다음과 같은 출력이 있다면 정상적으로 실행된 것입니다.
1docker-compose logs1 2 3 4 5app_1 | [10/13/2021] [9:53:02 AM] [SSL ] › ℹ info Renewing SSL certs close to expiry... app_1 | [10/13/2021] [9:53:02 AM] [IP Ranges] › ℹ info IP Ranges Renewal Timer initialized app_1 | [10/13/2021] [9:53:02 AM] [Global ] › ℹ info Backend PID 246 listening on port 3000 ... app_1 | [10/13/2021] [9:53:03 AM] [Nginx ] › ℹ info Reloading Nginx app_1 | [10/13/2021] [9:53:03 AM] [SSL ] › ℹ info Renew Complete
5. DNS 설정
무료로 이용할 수 있는 duckdns를 사용해 DNS를 연결하겠습니다.
- 로그인 한 뒤 사용할 dns를 추가합니다.

- oracle에서 받은 public ip를 입력합니다.

6. Nginx Proxy 연결
http://<Public IP>:81로 접속합니다.
다음과 같이 화면이 출력됩니다.

기본 아이디와 비밀번호는 다음과 같습니다.
- id: admin@example.com
- pw: changeme
접속 후 아이디와 비밀번호를 바꿔줍니다.
7. Nginx DNS 연결
- Proxy Hosts를 선택합니다.

- Add Proxy Host를 선택합니다.

- Nginx Proxy Host를 접속한 dns를 입력해줍니다.
저는 npm을 subdomain으로 생성했습니다.

- 설정한 dns로 접속되는지 확인합니다.
- https 접속을 위한 ssl를 설정해주어야 합니다.

- 다음과 같은 내용으로 작성합니다.

- oracle cloud에서 81번 포트를 삭제합니다.
