arko_renual/deploy/wise/csv.wise.ai.kr.conf
infraurp ddacd1b7f5
Some checks failed
deploy-wise / deploy (push) Failing after 11s
csv.wise.ai.kr 배포 파이프라인 신설 (PC → git → web → was)
웹서버(175.118.124.176)의 Gitea 러너가 JDK8 로 WAR 을 빌드해 WAS(27.255.76.2)의
Tomcat·MariaDB 컨테이너로 배포한다. WAS 는 웹서버를 통해서만 닿고, Tomcat 은
127.0.0.1 바인딩이라 웹서버가 SSH 터널로 잇는다.

- WAS 는 가용 메모리가 3G 안팎(llama-server 200G+ 점유)이라 빌드를 웹서버에서 한다
- claudeops 가 sudo 를 쓸 수 없어 Tomcat·MariaDB 를 컨테이너로 올렸다
- 배포 스크립트를 매 실행마다 저장소본으로 덮어써 서버 사본 드리프트를 막는다

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26 11:16:10 +09:00

59 lines
2.5 KiB
Plaintext

# csv.wise.ai.kr — arko(문화품앗이) 웹 티어
# 설치 위치: /etc/httpd/conf.d/csv.wise.ai.kr.conf (이 서버는 Apache httpd 를 쓴다)
#
# 경로: 브라우저 → httpd 443 → [SSH 터널] 127.0.0.1:11060 → WAS(27.255.76.2) Tomcat
# DB(MariaDB)는 WAS 안에서만 접근한다. 이 서버는 DB 에 붙지 않는다.
#
# 127.0.0.1:11060 은 arko-was-tunnel.service 가 만들어 준다.
# 502 가 나면 `systemctl status arko-was-tunnel` 부터 확인할 것.
<VirtualHost *:80>
ServerName csv.wise.ai.kr
# 인증서 갱신(webroot)은 리다이렉트보다 먼저 처리되어야 한다
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/
<Directory "/var/www/html/.well-known/acme-challenge">
Require all granted
Options None
</Directory>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>
<VirtualHost *:443>
ServerName csv.wise.ai.kr
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/csv.wise.ai.kr/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/csv.wise.ai.kr/privkey.pem
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLCipherSuite HIGH:!aNULL:!MD5
# 자원봉사 활동사진·첨부파일 업로드가 있어 기본값으로는 부족하다
LimitRequestBody 104857600
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
# 운영(csv.culture.go.kr)이 따로 있는 검증 환경이므로 색인을 막는다
Header always set X-Robots-Tag "noindex, nofollow"
# Host 를 그대로 넘겨야 WAS 가 csv.wise.ai.kr 기준으로 링크를 만든다
ProxyPreserveHost On
# arko 는 첫 요청에서 JSP 를 컴파일하고, 통계·엑셀 다운로드가 오래 걸린다
ProxyTimeout 300
# 접속기록(개인정보보호 SFR-004)이 실제 접속자 IP 를 남겨야 한다.
# 프록시를 한 단 거치므로 원본 IP 를 헤더로 전달한다.
RequestHeader set X-Forwarded-Proto "https"
ProxyPass /.well-known/acme-challenge/ !
ProxyPass / http://127.0.0.1:11060/
ProxyPassReverse / http://127.0.0.1:11060/
ErrorLog /var/log/httpd/csv_error.log
CustomLog /var/log/httpd/csv_access.log combined
</VirtualHost>