All checks were successful
deploy-dev / deploy (push) Successful in 36s
웹 티어(211.37.173.197 / Rocky 8): - csv.wise.ai.kr nginx vhost + Let's Encrypt SSL - WAS는 SSH 터널(arko-was-tunnel.service)로 연결 — 개발서버가 NAT 뒤라 8088이 포워딩되지 않고 Tomcat도 127.0.0.1 바인딩이기 때문이다. 키는 WAS에서 restrict,permitopen="127.0.0.1:8088" 로 묶어 셸 접근 불가. - 정적 리소스는 운영 웹이 직접 서빙하고 없으면 @was 폴백 — 전환 중에도 깨지지 않는다. 파이프라인: git push -> 개발 WAS 배포 -> 개발 헬스체크 -> 운영 웹 정적 배포 -> 운영 검증 개발 헬스체크를 통과한 뒤에만 운영으로 넘어간다. 접속 방향은 개발->운영(개발서버는 NAT 뒤라 역방향 접속이 불가능하다).
41 lines
1.5 KiB
Desktop File
41 lines
1.5 KiB
Desktop File
# arko WAS 터널 — 웹서버(utimsurpai.cafe24.com)에서 개발서버 Tomcat으로
|
|
# 설치 위치: /etc/systemd/system/arko-was-tunnel.service
|
|
#
|
|
# 왜 터널인가:
|
|
# WAS(101.79.17.164)는 NAT 뒤에 있고 8088은 포워딩되지 않는다(22/80/443만 열림).
|
|
# Tomcat도 127.0.0.1에만 바인딩되어 있다. 포트를 공개로 여는 대신,
|
|
# 웹서버가 아웃바운드 SSH로 터널을 열어 자기 쪽 127.0.0.1:8088 을 WAS의 Tomcat에 잇는다.
|
|
# - NAT 변경 불필요, 구간 암호화, Tomcat이 인터넷에 직접 노출되지 않음
|
|
# - 같은 서버의 uiws-tunnel(5432)과 동일한 방식
|
|
#
|
|
# 키는 WAS의 authorized_keys에서 restrict,permitopen="127.0.0.1:8088" 로 묶여 있어
|
|
# 셸 접근은 불가능하고 이 포트 외에는 열 수 없다.
|
|
[Unit]
|
|
Description=SSH tunnel to arko DEV WAS (101.79.17.164:8088)
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
Before=nginx.service
|
|
|
|
[Service]
|
|
Type=simple
|
|
ExecStart=/usr/bin/ssh -N -T \
|
|
-o ExitOnForwardFailure=yes \
|
|
-o ServerAliveInterval=30 \
|
|
-o ServerAliveCountMax=3 \
|
|
-o StrictHostKeyChecking=accept-new \
|
|
-o UserKnownHostsFile=/root/.ssh/known_hosts \
|
|
-o IdentitiesOnly=yes \
|
|
-i /root/.ssh/id_arko_tunnel \
|
|
-L 127.0.0.1:8088:127.0.0.1:8088 \
|
|
root@101.79.17.164
|
|
|
|
# 끊기면 계속 재연결한다 — 개발서버가 재부팅되는 일이 잦다(2026-07-29 하루 두 번)
|
|
Restart=always
|
|
RestartSec=10
|
|
|
|
User=root
|
|
Group=root
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|