Study/Network

[Network]Nginx Proxy Manager 설치 및 설정

seomj 2024. 8. 1. 21:00

HAProxy에 이어 Nginx Proxy Manager를 설치하고 설정한다.

 

[Network]HAProxy 설치 및 설정

HAProxy를 설치하고 http 및 https 통신 설정 과정에 대해 다룬다.HAProxy란TCP 및 HTTP 기반 애플리케이션에 대한 고가용성, 부하 분산 및 프록시을 제공하는 무료, 매우 빠르고 안정적인 역방향 프록시 

seomj74.tistory.com


Nginx Proxy Manager

요청 헤더 수정 및 응답 버퍼링 미세 조정을 지원하여 HTTP 및 기타 프로토콜에 대한 역방향 프록시

 

진행 순서

  • NPM 설치
  • server에 대해 proxy 구성 - HTTP/HTTPS

 

구성 환경

client

proxy server - nginx proxy manager(docker)

server - nginx

 

NPM 설치

nginx proxy manager는 docker로 설치하기를 권장하고 있다.

 

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

$ vi docker-compose.yml
$ cat docker-compose.yml
version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
$ sudo docker compose up -d

 

web page 접속

 

첫 로그인 계정

admin@example.com

changeme

 

Proxy 구성

client

/etc/hosts

$ cat /etc/hosts
127.0.0.1 localhost
<proxy server ip> npm.example.com
...

HTTP

destination에는 server ip와 port를 적어주면 된다.

 

HTTPS

openssl을 이용해 key와 crt 생성

$ sudo apt install openssl
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/npm_selfsigned.key -out /etc/ssl/certs/npm_selfsigned.crt
Generating a RSA private key
...............+++++
..............................+++++
writing new private key to '/etc/ssl/private/npm_selfsigned.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:New York City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:<proxy server ip>
Email Address []:

 

만들어진 key와 crt를 web page ssl 인증에 등록

 

이후 proxy host에도 적용해주면 된다.

 

확인

아래는 http와 https 모두 동일하게 진행

 

client에서 확인

$ curl npm.example.com
//http

$ curl -k https://npm.example.com
//https

 

'Study > Network' 카테고리의 다른 글

[Network] Sendmail 메일 서버 구축 + DNS 서버 연결  (0) 2024.08.09
[Network]FTP 서버 구축  (0) 2024.08.03
[Network]HAProxy 설치 및 설정  (0) 2024.07.30
[Network]SCAN(스캔) 공격  (0) 2024.07.09
[Network]DNS(Domain name System)  (0) 2023.06.14