Proxmox에 LXC로 Nginx Proxy Manager 설치하기
Proxmox에서 Nginx Proxy Manager를 사용하려면 여러 방법이 있습니다. VM을 만들어서 올려도 되고, 직접 우분투 LXC 등에 도커를 설치해서 올려도 되지만, 어떤 용자 분이 스크립트 하나로 알파인 기반의 LXC를 생성할 수 있도록 만들어 두셨더라고요.
https://github.com/ej52/proxmox-scripts/tree/main/apps/nginx-proxy-manager
설치하기
사용 방법은 간단합니다. 아래 명령어를 복사하신 후 Proxmox 쉘에서 실행하시면 됩니다.
sh -c "$(wget --no-cache -qO- https://raw.githubusercontent.com/ej52/proxmox/main/install.sh)" -s --app nginx-proxy-manager
기본적으로 1코어에 램 512MB, 2GB 저장공간으로 생성되며, 뒤에 파라미터를 붙여 수정할 수도 있습니다.
저는 ZFS에 Proxmox가 설치되어 있어서 storage를 local-zfs로 변경하고, 추가로 VM ID를 900으로 바꾸어 설치하였습니다. 제가 사용한 명령어는 아래와 같습니다.
curl -sL https://raw.githubusercontent.com/ej52/proxmox/main/lxc/nginx-proxy-manager/create.sh | bash -s -- --id 900 --storage local-zfs
설치가 완료되면 아래와 같이 주소를 하나 보여주는데, 저 주소로 들어가면 Nginx Proxy Manager 설정으로 들어갈 수 있습니다.
로그인 창이 보이면 아이디 admin@example.com, 비밀번호 changeme를 입력하여 로그인합니다.
그러면 이름과 이메일을 수정하는 창이 나오는데, 본인에게 맞게 설정하고 저장합니다.
비밀번호 변경 창도 기존 비밀번호에 changeme, 아래에는 바꿀 비밀번호 입력하시고 저장하면 완료입니다.
업데이트하기
NPM 컨테이너에서 아래 명령어를 입력하면 설정을 유지한 채로 업데이트할 수 있습니다.
wget --no-cache -qO - https://raw.githubusercontent.com/ej52/proxmox-scripts/main/lxc/nginx-proxy-manager/setup.sh | sh
설치 후 웹에서 ssl 등록하려는데 오류가 나는데 혹시 진행방법 알 수 있을까요?
Error: Command failed: . /opt/certbot/bin/activate && pip install --no-cache-dir --user certbot-dns-cloudflare==$(certbot --version | grep -Eo '[0-9](\.[0-9]+)+') cloudflare && deactivate
ERROR: Can not perform a '--user' install. User site-packages are not visible in this virtualenv.
[notice] A new release of pip available: 22.3.1 -> 23.0.1
[notice] To update, run: pip install --upgrade pip
at ChildProcess.exithandler (node:child_process:402:12)
at ChildProcess.emit (node:events:513:28)
at maybeClose (node:internal/child_process:1100:16)
at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)
Console 에서 설치 완료 후 아래와 같이 명령어로 추가로 진행하면 해당 내용으로 오류가 나는것 같아요
Nginx Proxy Manager should be reachable at the following URL.
http://192.168.1.67:81
/ # pip install --upgrade pip
Requirement already satisfied: pip in /usr/lib/python3.10/site-packages (23.0.1)
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
/ #
pip install --upgrade pip 명령 경고는 root 계정을 쓰면 위험하단 내용같네요.
전 예전에 다른 오류로 github 내 tteck님에게 문의한 적이 있었는데 한번 해보세요.
컨테이너 안의 /opt/certbot/pyvenv.cfg 파일을 열어서 include-system-site-packages를 true로 변경한 다음 저장해 주세요.
그리고
python3 -m pip install certbot-dns-cloudflare==$(certbot --version | grep -Eo '[0-9](\.[0-9]+)+') cloudflare
명령어를 입력하시고 재부팅해 주시면 됩니다.
이번에 proxmox 를 배우고있는 뉴비입니다. 이것저것 질문하다가 이제는 무엇이 문제인지 몰라 차근차근 기초부터 보려는중에 https://svrforum.com/proxmox_guide/953984 => 여기서 글을 타고 넘어왔습니다.
처음에 nginx 부분 설치하는 부분의 주소가 변경되어 다른분들을 위해 댓글로 아래 링크 남겨둡니다.
https://github.com/ej52/proxmox-scripts/tree/main
Cloudflare DNS 연결해서 wildcard 인증서까지 발급 받았습니다.
하나 궁금한 게 있는데요, Proxmox VE 웹도 reverse proxy로 연결하려고 했는데요,
다른 LXC 는 정상 연결 되는데, Proxmox VE 쪽만 이상하게 계속 connection refused 가 납니다.
http / https 모두 연결 실패, SSL 적용도 해봤으나 실패합니다.
아시는 바가 있을까요?
계속 만지다보니, 기존 proxmox 에서 ACME 통해 발급한 인증서와 충돌이 나나 싶어서 그걸 우선 삭제하고, 몇시간 지나니 자연스레 해결이 되었네요!
cmt alert