Viya 3.5 의 httpd 는 Apache HTTP Server 이고, 사용자 요청을 받아 내부 마이크로서비스로 넘기는 웹 게이트웨이 역할을 한다. 인증서, 리버스 프록시 규칙, 헤더 처리가 모두 여기 있다. 그래서 이 설정을 잘못 고치면 Viya 전체가 접속 불가가 된다.
설정은 /etc/httpd/conf/httpd.conf 와 /etc/httpd/conf.d/*.conf 로 나뉜다. SAS 가 배포하는 규칙은 보통 conf.d 아래에 별도 파일로 들어간다.
conf.d 아래 파일을 고친 경우 전체 재시작은 필요 없다. reload 는 자식 프로세스를 점진적으로 교체하므로 기존 연결이 끊기지 않는다.
sudo apachectl configtest
sudo systemctl reload httpd
문법 검사를 먼저 한다. reload 는 문법 오류가 있으면 새 설정을 반영하지 못하는데, 상황에 따라 서비스가 그대로 돌아 "고쳤는데 반영이 안 된다" 로 보이거나, 반대로 죽어 버린다. configtest 로 Syntax OK 를 먼저 받아 두면 이 갈림길을 없앨 수 있다.
restart 가 필요한 경우는 다음 정도다.
LoadModule)Listen 포트를 바꿨다systemctl status httpd --no-pager -l
ss -lntp | grep -E ':(80|443)\b'
sudo tail -n 50 /var/log/httpd/error_log
| 메시지 | 뜻 |
|---|---|
AH00526: Syntax error on line ... |
설정 파일 문법 오류 |
AH00072: make_sock: could not bind |
포트를 이미 다른 프로세스가 쓰고 있다 |
SSL Library Error |
인증서 경로·권한·체인 문제 |
AH01276 / AH00898 |
프록시 대상 백엔드에 붙지 못함 |
curl -vk https://<viya-hostname>/
루트가 /SASLogon/ 으로 리다이렉트되면 프록시 배선이 살아 있다.
< HTTP/1.1 302 Found
< Location: /SASLogon/
curl -sk https://<viya-hostname>/SASLogon/login | grep -i '<title>'
로그인 페이지 제목이 나오면 백엔드까지 도달한 것이다. 502 · 503 이 나오면 httpd 는 살아 있고 뒤쪽 서비스가 문제다.
체인이 끊기면 브라우저만 실패하고 curl -k 는 통과하므로 놓치기 쉽다. 실제 제공되는 체인을 직접 본다.
openssl s_client -connect <viya-hostname>:443 -servername <viya-hostname> -showcerts </dev/null
게이트웨이 설정은 실패하면 전면 장애다. 고치기 전에 사본을 둔다.
sudo cp -a /etc/httpd/conf.d/<파일>.conf /etc/httpd/conf.d/<파일>.conf.$(date +%Y%m%d)
conf.d 아래에 .conf 로 끝나지 않는 이름으로 백업해야 Apache 가 읽지 않는다. .conf.20260920 은 안전하지만 .conf 로 끝나는 이름은 그대로 읽혀 중복 정의가 된다.