라즈베리파이 Nginx-proxy-manager 설치(DOCKER)

리버스 프록시를 사용하면 굉장히 편하고 이점이 많습니다. 라즈베리파이에 설치해 보도록 할께요. 제가 사용한 파이 버전은 3B 입니다.

$ mkdir nginx-proxy-manager
$ cd nginx-proxy-manager
$ vi config.json

{
  "database": {
    "engine": "mysql",
    "host": "db",
    "name": "npm",
    "user": "npm",
    "password": "npm",
    "port": 3306
  }
}

$ docker pull jc21/nginx-proxy-manager
$ docker pull jsurf/rpi-mariadb
$ vi docker-compose.yml

version: '3'
services:
  app:
    image: 'jc21/nginx-proxy-manager'
    restart: always
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./config.json:/app/config/production.json
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
  db:
    image: 'jsurf/rpi-mariadb'
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 'npm'
      MYSQL_DATABASE: 'npm'
      MYSQL_USER: 'npm'
      MYSQL_PASSWORD: 'npm'
    volumes:
      - ./data/mysql:/var/lib/mysql

$ docker-compose up -d

여기까지 하면 컨테이너가 생성 되면서 실행이 될거예요.

http://[ip]:81 포트로 Admin UI 접속하세요.

Default Admin User 정보는 아래 참고하세요.

Email:    admin@example.com
Password: changeme

이제 nginx-proxy-manager를 사용법을 볼까요?

http://abc123.com:1234/를 www.abc123.com 으로 대체하고 싶은 경우

왼쪽 상단 Hosts 클릭후 proxy hosts 클릭

우측 상단 add prxoy host 클릭

Domain names 에 www.abc123.com 입력

scheme : http 그대로 유지

forward hostname/IP : abc123.com 또는 [IP]

foward port : 1234

Cache Assets, Block Common Exploits, Websockets Support 3개 모두 체크하세요.

SSL 탭에서 Reguest a new SSL certificate 클릭

Force SSL, HTTP/2 Support, HSTS Enabled, HSTS Subdomains 4개 모두 체크, 이메일 넣기, 아래도 체크 후 save

하면 정상적으로 인증서가 발급되면서 Online 상태가 될 거예요.

이제 www.abc123.com 으로 접속해서 확인해 보시면 됩니다.

특정상황에서
http://abc123.com:1234/xyz
처럼 주소 뒤에 /xxx를 붙여야 접속되는 구조인 경우 해결방법입니다.

Custom Location 에

location = / {
return 301 $scheme://$server_name/xyz/;
}

을 추가하면 됩니다.

참고 사이트
https://nginxproxymanager.com(클릭)

%d 블로거가 이것을 좋아합니다: