728x90

웹서버가 설치된 리눅스 컨테이너(록키리눅스1)와 Nginx를 설치할 리눅스 컨테이너(록키리눅스2)가 각각임.
CPU 2코어, 램 2GB, 저장장치 20GB를 할당해서 생성.
웹서버(록키리눅스1)의 서비스 IP는 192.168.1.100:3000, Nginx서버(록키리눅스2)의 IP는 192.168.1.200

1. 리버스 프록시 설정이란?

리버스 프록시(reverse proxy)는 클라이언트의 요청을 받아 실제 서버로 요청을 전달하고, 그 결과를 클라이언트에 반환하는 역할을 하는 서버입니다. 이 방식은 보안, 로드 밸런싱, 캐싱 등 여러 가지 이점을 제공합니다.

2. Nginx를 사용한 리버스 프록시 설정

여기서는 Nginx를 사용하여 리버스 프록시를 설정하는 방법을 소개합니다. Nginx는 요청을 다른 서버로 전달하는 매우 효율적인 웹 서버로, 여러 웹 서버를 관리하는 데 유용합니다.

설정 파일 구조

server {
    listen 1010;  # 포트 1010에서 요청을 수신
    server_name 192.168.1.200;  # 서버의 IP 주소

    location / {
        proxy_pass http://192.168.1.100:3000;  # SvelteKit 서버 IP와 포트
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

이 설정에서는 `192.168.1.200`의 IP 주소로 들어오는 요청을 192.168.1.100:3000에서 구동되는 SvelteKit 애플리케이션으로 전달합니다.

3. 여러 웹 서버를 한 서버에서 구동하기

여러 개의 웹 서버를 같은 IP에서 구동하려면, 포트 번호만 다르게 설정하면 됩니다. 아래는 여러 포트에서 각각 다른 웹 서버를 구동하는 예시입니다.

여러 웹 서버 설정 예시

server {
    listen 1010;  # 포트 1010에서 요청을 수신
    server_name 192.168.1.200;  # 서버의 IP 주소

    location / {
        proxy_pass http://192.168.1.100:3000;  # SvelteKit 애플리케이션
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

server {
    listen 1020;  # 포트 1020에서 요청을 수신
    server_name 192.168.1.200;

    location / {
        proxy_pass http://192.168.1.101:3000;  # 다른 애플리케이션
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

위 설정에서는 포트 1010에서 SvelteKit 애플리케이션을, 포트 1020에서 다른 애플리케이션을 처리하도록 설정합니다.

4. 설정 파일 분리 방법

각 웹 서버마다 개별 설정 파일을 생성하여 관리하는 것이 효율적입니다. Nginx에서는 conf.d 디렉토리나 include 지시어를 사용하여 여러 설정 파일을 분리할 수 있습니다.

개별 설정 파일 생성

각각의 웹 서버에 대해 별도의 설정 파일을 생성할 수 있습니다. 예를 들어:

/etc/nginx/conf.d/webserver_1.conf
/etc/nginx/conf.d/webserver_2.conf

설정 파일에 `include` 사용

`nginx.conf` 파일에 여러 개의 설정 파일을 포함시키는 방법:

include /etc/nginx/conf.d/*.conf;

이렇게 하면 여러 설정 파일을 각각 관리할 수 있습니다.

5. Nginx 설정 재시작

설정을 변경한 후에는 Nginx를 재시작해야 합니다. 아래 명령어로 설정 파일을 테스트하고 Nginx를 재시작할 수 있습니다:

sudo nginx -t  # 설정 파일 테스트
sudo systemctl restart nginx  # Nginx 재시작

이 포스트는 Nginx를 이용한 리버스 프록시 설정 방법과 여러 웹 서버를 동일한 IP에서 구동하는 방법에 대해 다루었습니다. 더 많은 정보를 원하시면 공식 Nginx 문서나 관련 자료를 참고하세요.

 

 이 방법을 사용하면 여러가지 이점이 있지만 그 중에서 하나의 도메인 네임에 여러개의 하부 도메인을 생성할 수 있는 기능이 있습니다.

main.com이란 도메인을 가지고 있다고 가정하면 blog.main.com, test.main.com, coding.main.com 등등 생성하여 각각의 서비스를 제공할 수 있습니다.

기본 Proxmox에서 이뤄지는 세팅이긴 하지만 여기에서 다루는 내용은 그냥 웹서버 설정이 주가 되기 때문에 Web카테고리로 설정합니다.

728x90

+ Recent posts