AWS

Nginx proxy manager 설치, letsencrypt ssl 발급 받기

뇌장하드 2022. 12. 1. 22:41

Nginx proxy manager란?

 

Nginx를 명령어를 사용하여서 설정을 하는 것이 아니라 깔쌈한 ui를 통해 손쉽게 설정을 할수 있고, letsencrypt을 활용하여 손쉽게 ssl인증서를 발급 받을수 있습니다.

https://nginxproxymanager.com/

 

Nginx Proxy Manager

Docker container and built in Web Application for managing Nginx proxy hosts with a simple, powerful interface, providing free SSL support via Let's Encrypt

nginxproxymanager.com

 

 

설치 환경

  • 네이버 클라우드 [MICRO] 1vCPU, 1GB Mem [g1]
  • CentOS 7.8 (64-bit)

 

도커가 설치되었이다는 가정하게 시작하겠습니다.

 

손쉬운 도커를 띄우기 위해서 도커 컴포즈를 설치 해줍니다.

// 최신 docker compose를 해당 링크에서 받을 수 있음
sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose


// 권한 부여
sudo chmod +x /usr/local/bin/docker-compose


// 설치 확인
docker-compose version

 

proxy-manager라는 폴더를 만들고 폴더에 들어가서 도커 컴포즈를 작성해줍니다.

mkdir -p /data/proxy-manager

cd /data/proxy-manager

vi docker-compose.yml

 

docker-compose.yml
version: '3'

services:

  app:

    image: 'jc21/nginx-proxy-manager:latest'

    ports:

      - '80:80'

      - '81:81'

      - '443:443'

    environment:

      DB_MYSQL_HOST: "db"

      DB_MYSQL_PORT: 3306

      DB_MYSQL_USER: "npm"

      DB_MYSQL_PASSWORD: "npm"

      DB_MYSQL_NAME: "npm"

    volumes:

      - ./data:/data

      - ./letsencrypt:/etc/letsencrypt

  db:

    image: 'jc21/mariadb-aria:latest'

    environment:

      MYSQL_ROOT_PASSWORD: 'npm'

      MYSQL_DATABASE: 'npm'

      MYSQL_USER: 'npm'

      MYSQL_PASSWORD: 'npm'

    volumes:

      - ./data/mysql:/var/lib/mysql

 

작성이 완료되었다면 도커 컴포즈 명령으로 설치를 진행합니다.

docker-compose up -d

네이버 클라우드 서버의 성능이 안좋아서 많이 기다려야합니다..

 

설치가 완료 되었다면 docker ps로 이미지가 실행이 되는것을 확인합니다.

이제 컴포즈 설정 파일에서 설정한 81번 포트로 들어가 줍니다.

 

{서버 ip주소}:81

이 창이 뜨면 설치가 완료 되었습니다. 초기 이메일과 비밀번호는 아래와 같습니다.

Email:    admin@example.com

Password: changeme

 

로그인을 하면 사용자 정보 업데이트를 해주면 성공입니다.

 

프록시 설정을 하기 전에 ssl인증서를 먼저 받아주면 좋다고 합니다. 사실 차이는 없습니다. 

도메인 네임에 구매한 도메인을 넣어줍니다. forward hostname에는 서버의 아이피를 넣어줍니다.

이러면 프록시 설정은 완료 되었습니다.

 

ssl 인증서를 받아보겠습니다.

SSL Certificates 버튼을 눌러 줍니다. 

도메인 네임에 구입한 도메인을 넣고 save를 누르면 ssl인증서가 발급됩니다. 

 

그다음 처음 설정했던 proxy host에서 edit을 눌러 ssl 탭을 눌러줍니다.

None을 누르면 발급 받은 ssl목록이 나오면 성공입니다. save를 눌러주면 https를 통해 안전하게 통신을 할수 있습니다.