IT/Linux

[LINUX] Nginx Proxy Manager 설치

Erynn 2022. 11. 29.
Naver Cloud Platform
OS : CentOS 7.8

 

공인IP가 있는 서버에 Nginx Proxy Manager를 설치하여 해당 서버를 통해 다른 서버에 접속할 수 있도록 설정해주었습니다. 

 


 

1. Docker, Docker Compose 설치

 

- Docker 설치

//Docker 설치 스크립트 다운로드
[root@web-01 ~]# curl -fsSL https://get.docker.com -o get-docker.sh

//스크립트에 실행권한 부여
[root@web-01 ~]# chmod +x get-docker.sh

//스크립트 실행
[root@web-01 ~]# ./get-docker.sh
❗ Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
해당 에러는 도커가 실행상태가 아니라서 나오는 에러이므로, 
systemctl start docker 명령어로 도커를 실행해주면 됩니다.

 

- Docker Compose 설치

//Docker Compose 설치
[root@web-01 ~]# curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

//실행권한 부여
[root@web-01 ~]# chmod +x /usr/local/bin/docker-compose

//설치확인
[root@web-01 bin]# docker-compose --version
docker-compose version 1.29.2, build 5becea4c

 


 

2. 설정파일 생성

 

- yml 파일 생성

[root@web-01 bin]# vim docker-compose.yml

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

 

 

- yml 파일 실행 및 확인

 

실행은 작성해준 파일이 있는 곳에서 해주어야합니다.

netstat으로 포트를 확인해보면 설정해준 포트(80,81,443)가 떠있는 것을 볼 수 있습니다.

이미 해당 포트가 사용중인 경우 에러가 나니 미리 확인해보는게 좋습니다.

혹시 안될 경우 방화벽을 열어주었는지 확인(80,81,443)해보아야합니다.

[root@web-01 bin]# docker-compose up -d

[root@web-01 bin]# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      11406/docker-proxy
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      613/rpcbind
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      11430/docker-proxy
tcp        0      0 0.0.0.0:81              0.0.0.0:*               LISTEN      11418/docker-proxy
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      938/sshd
tcp6       0      0 :::111                  :::*                    LISTEN      613/rpcbind
tcp6       0      0 :::22                   :::*                    LISTEN      938/sshd

 


 

3. 페이지 접속

공인IP:81 로 접속 시 페이지가 나옵니다.

초기 계정은 아래와 같습니다.

Email address : admin@example.com

Password: changeme

 

 


 

4. bastion 으로 사용

Nginx Proxy Manager에서 사용할 수 있는 다양한 기능 중 저는 해당 서버를 bastion 으로 사용할 수 있도록 설정해보았습니다.

 

- 설정 페이지 접속 및 설정

 

저는 공인IP:10001 로 접속하면, 다른 서버(192.168.40.10)의 22번 포트(SSH)로 접속할 수 있도록 설정해주었습니다.

 

- 방화벽 설정

 

공인IP 의 인바운드 10001번 포트를 허용해주어야 접속이 가능합니다.

 

 

- 접속 확인

 

공인IP:10001 로 접속하면, 위에서 설정한 다른 서버로 SSH 접속이 되는 것을 확인할 수 있습니다.