이번 포스트에서는 생성한 인스턴스를 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 7
sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release
- Add Docker’s official GPG key
1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
1 2 3
echo \ "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 2
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
- 실행 확인
1
docker ps
- 실행이 안될 경우 포스트를 참고하세요.
3. docker-compose 설치
공식 홈페이지를 참고해 docker-compose를 설치합니다.
- Download Docker Compose
1
sudo 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
1
sudo chmod +x /usr/local/bin/docker-compose
- Add Path
1
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
- Test
1
docker-compose --version
4. docker-compose.yaml
작성
- 폴더 생성
1
mkdir ~/npm; cd ~/npm
docker-compose.yaml
작성
|
|
- docker-compose 실행
1
docker-compose up -d
- 실행 확인로그의 제일 마지막에 다음과 같은 출력이 있다면 정상적으로 실행된 것입니다.
1
docker-compose logs
1 2 3 4 5
app_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번 포트를 삭제합니다.