웹서버가 설치된 리눅스 컨테이너(록키리눅스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 재시작
'Web' 카테고리의 다른 글
Emscripten을 이용한 WebAssembly(WASM) 컴파일 가이드 (0) | 2025.03.29 |
---|---|
Podman 이미지 크기 줄이기 - Dockerfile 최적화 방법 (0) | 2025.02.27 |
URL에서의 API 보안 취약점과 기본적인 방어 방법 (0) | 2025.02.19 |