2025. 3. 25. 10:06ㆍIT
하나의 서버에서 여러 개의 WAS를 설치하고 유입되는 도메인에 따라 WAS를 찾아가는 방법을 정리한다.
즉, 서버는 하나이고 여러개의 WAS를 다른 포트로 운영을 할때 유입되는 도메인에 따라서 포트 포워딩하는 방법이다.
리눅스 Ubuntu 기준으로 정리하였다.
예상 결과
도메인 | 포워딩 주소 | 비고 |
example1.com | localhost:8080 | SSL 적용 (Let’s Encrypt) |
example2.com | localhost:9090 | SSL 적용 (Let’s Encrypt) |
Nginx 설치
sudo apt update
sudo apt install nginx -y
포워딩 설정 파일 생성
vi /etc/nginx/sites-available/example1.com
아래 내용을 입력
server {
listen 80;
server_name example1.com www.example1.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example1.com www.example1.com;
ssl_certificate /etc/letsencrypt/live/example1.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example1.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
위 스크립트 내용을 간단히 설명하자면....
listen 80 : nginx가 도메인 및 포트 포워딩 전달을 하기 위해 점유하는 포트이다.
return 301 : http로 유입이 되었을 때 https로 리다이렉트 시킨다.
listen 443 ssl : https로 유입되는 인증 포트로 443으로 유입이 되면 SSL 체인과 키를 인지하여 https가 가능하도록 포워딩된다. Tomcat 또는 Jetty에서는 기본포트가 8443으로 되어 있으니 그대로 두면 되고 WAS가 두 개라면 다른 하나는 8444 같이 포트가 중복되지 않도록 기동 하면 포트 충돌을 피할 수 있다.
roxy_pass http://localhost:9090; 부분은 해당 WAS의 Listen 포트를 적어주면 해당 도메인 접속시 해당 WAS로 전달된다.
두 번째 example2.com 도메인도 같은 방법으로 작업
vi /etc/nginx/sites-available/example2.com
두 번째 도메인도 아래 내용을 입력
server {
listen 80;
server_name example2.com www.example2.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example2.com www.example2.com;
ssl_certificate /etc/letsencrypt/live/example2.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example2.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://localhost:9090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
설정을 nginx가 인식할 수 있도록 링크 생성
sudo ln -s /etc/nginx/sites-available/example1 /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/example2 /etc/nginx/sites-enabled/
링크가 잘 생성되었는지 해당 경로에 가서 확인하고 문제가 없으면 기존에 떠 있는 WAS를 모두 내린다.
Nginx 재시작
sudo nginx -t
sudo systemctl restart nginx
Nginx 가 시작 되었으면 해당 WAS를 모두 기동해준다.
이 상태까지 오류가 없으면 WAS 작업을 위해 기동 및 중지를 여러 번 해도 상관없다.
Nginx의 버그인지 모르겠으나 초기에 WAS를 모두 내리고 띄워야 되더라..
Nginx 기동 중지 관련 명령
$ Nginx Stop
sudo systemctl stop nginx
$ Nginx restart
sudo systemctl restart nginx
$ Nginx reload
sudo systemctl reload nginx
결과
나는 이렇게 설정을 해서 하나의 서버에 3개의 jetty를 설치하고 3개의 도메인을 연결했다.
'IT' 카테고리의 다른 글
유튜브 주의, 경고 콘텐츠에 대한 정책 위반 이의 신청 후기 (0) | 2025.01.24 |
---|---|
구글 애널릭틱스 GA4 설정, IP 추적 설정 방법, 무효클릭, 애드센스 (10) | 2023.10.19 |
LTE 라우터 어떤걸 사야하나 ? LTE 라우터 설정, 통신사별 APN (0) | 2023.03.22 |
https를 사용하기 위한 Jetty + SSL(Let's Encrypt) 적용하는 방법 (0) | 2023.02.09 |
Oracle ARCHIVELOG 삭제 하는 방법 (0) | 2022.03.22 |