ServerName ai.xavis.co.kr ProxyPreserveHost On # 대용량 업로드(회의 음성 등, 앱 MEETING_AUDIO_MAX_MB 와 맞출 것) LimitRequestBody 314572800 # 전사·LLM 등 장시간 응답. 회의록 음성 SSE는 수 분 이상 걸릴 수 있음. TimeOut 600 ProxyTimeout 600 # 앱 응답의 X-Accel-Buffering: no 는 Nginx 전용. Apache mod_proxy_http 는 무시하므로, # 스트림이 끊기면 TimeOut/ProxyTimeout 과 VirtualHost 레벨 mod_deflate(전역 압축 시 text/event-stream) 여부를 점검. # HTTPS 프록시임을 Node/앱에 알림 (쿠키 Secure, 리다이렉트 URL 등) RequestHeader set X-Forwarded-Proto "https" # 클라이언트 IP 등 전달 (Apache 2.4.31+, mod_proxy_http) ProxyAddHeaders On # 나머지 모든 요청 — Node.js Express (매직링크 인증 포함) ProxyPass / http://127.0.0.1:8030/ ProxyPassReverse / http://127.0.0.1:8030/ SSLEngine on Include /etc/letsencrypt/options-ssl-apache.conf ErrorLog ${APACHE_LOG_DIR}/ai.xavis.co.kr_ssl_error.log CustomLog ${APACHE_LOG_DIR}/ai.xavis.co.kr_ssl_access.log combined Require all granted Require not env bad_bot SSLCertificateFile /etc/letsencrypt/live/ai.xavis.co.kr/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/ai.xavis.co.kr/privkey.pem