Nginx는 Web Server로 사용되는 대표적인 오픈소스 소프트웨어이며, 정적 파일 제공뿐만 아니라 Reverse Proxy, Load Balancing 등의 기능을 제공합니다.
Reverse Proxy 방식에서는 Client가 직접 WAS Server에 접근하지 않고 Nginx를 통해 요청을 전달받도록 구성할 수 있습니다. 이를 통해 WAS Server를 외부에 직접 노출하지 않고 내부 네트워크에 배치할 수 있으며, Web Server와 Application Server의 역할을 분리할 수 있습니다.
이번 실습에서는 Nginx를 설치하고 Reverse Proxy 설정을 구성하여, Client의 HTTP 요청을 내부 WAS Server의 특정 Port와 Path로 전달하도록 설정합니다.
Nginx를 Reverse Proxy Server로 사용하기 위해 Package를 설치합니다.
dnf install -y nginx
Nginx 서비스를 시작하고 시스템 부팅 시 자동으로 실행되도록 설정합니다.
systemctl enable --now nginx
Nginx로 들어온 요청을 내부 WAS Server로 전달하도록 Reverse Proxy를 구성합니다.
WAS_PRIVATE_IP에는 WAS Server의 Private IP 또는 DNS Name을 입력하고, PORT와 PATH에는 WAS Application의 Port와 Path를 입력합니다.
vim /etc/nginx/nginx.conf
server {
listen 80;
listen [::]:80;
server_name <WAS_PRIVATE_IP>;
root /usr/share/nginx/html;
location / {
proxy_pass http://<WAS_PRIVATE_IP>:<PORT>/<PATH>;
}
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /404.html {
}
}
변경된 Reverse Proxy 설정을 적용하기 위해 Nginx 서비스를 재시작합니다.
systemctl restart nginx
이번 실습을 통해 Nginx를 Reverse Proxy Server로 구성하고, Client의 요청을 내부 WAS Server로 전달하는 과정을 확인할 수 있었습니다.
Nginx의 proxy_pass 설정을 이용하여 외부에서 들어오는 HTTP 요청을 WAS Server의 Private IP와 Port로 전달할 수 있었으며, 이를 통해 Client가 WAS Server에 직접 접근하지 않고 Nginx를 통해 Application에 접근하도록 구성할 수 있었습니다.
또한 nginx -t 명령어를 통해 설정 파일의 문법을 검증하고, Nginx 서비스를 재시작하여 변경된 Reverse Proxy 설정을 적용하는 과정도 확인할 수 있었습니다.
이를 통해 Web Server와 WAS Server를 분리하는 기본적인 구조와 Nginx Reverse Proxy의 동작 방식을 이해할 수 있었습니다.