개요
이 블로그가 DSM Web Station 하위 폴더에서 서비스 되고 있다.
Nginx + PHP + Maria DB 조합으로 운영 중이다.
Nginx 와 PHP 는 시놀로지 패키지이며 Maria DB 는 Docker 컨테이너에서 서비스 중이다.
(Nginx 는 Web Station 패키지의 일부이다)
Web Station 의 가상 호스트로 등록해서 사용한다.
DSM 을 7.1-42661 Update 4 에서 7.2.2-72806 Update 4 로 업그레이드 했다.
2025년 11월 18일 업그레이드를 하고 간단하게 사이트 접속 여부만 테스트 하고 넘어갔었다.
그리고 며칠 뒤 11월 28일 구글 Analytics 에 접속했는데 사용자 급하락 위젯이 표시가 되는 것을 보았다.
그래서 블로그에 접속해보니 메인 페이지는 접속에 문제가 없다.
혹시나 마지막 포스트를 클릭해 보니 404 에러가 표시되고 있었다.
구글에서 검색이 되더라도 메인 페이지 말고는 접속이 되지 않고 있었다.
근데 타이밍이 딱 DSM 업데이트 시점과 일치한다.
원인 분석
그래서 Gemini 한테 현재 상황에 대해 질문을 해봤다.
원인을 DSM 이 업데이트가 되면서 Web Station 이 개편되면서 발생한 문제였다.
기존에 임의 설정한 부분이 전혀 반영되지 않고 있었다.
라우팅 규칙 처리 방식이 초기화가 되면서 발생한 문제라고 한다.
Apache 로 변경을 하거나 Nginx 를 계속 사용할려면 수동 설정이 필요하다고 한다.
에초에 시놀로지 패키지에 의존하면서 종종 비슷한 상황이 생긴다.
일단 지금은 Nginx 와 PHP 등 관련 Docker 컨테이너를 추가하기 보단 Nginx 를 수동 설정하는 방법으로 해결했다.
해결 과정
가상 호스트 설정 수정
일단 root 로 접속해서 가상호스트 설정 파일 경로(/etc/nginx/sites-enabled) 에서 가상 호스트 설정파일을 찾아야 한다.
나의 경우 가상 호스트가 2개 이상이기 때문에 필요한 파일들을 모두 편집해야 했다.
location / 가 없기 때문에 추가해야 하는 상황이다.
그래서 모든 파일에 동일한 내용을 넣기 보다는 동일한 설정 파일을 생성해서 include 하는 방법을 선택했다.
사용자 설정 파일 경로(/usr/local/etc/nginx/conf.d) 에 rewrite.conf 파일을 생성해서 다음과 같이 작성한다.
location / {
try_files $uri $uri/ /index.php?$args;
}
소유자는 root 권한은 0644 로 설정한다.
가상 호스트 파일에서 server 블록 마지막에 다음 내용을 추가한다.
include /usr/local/etc/nginx/conf.d/rewrite.conf;
nginx 문법 검사
SSH 로 접속해서 nginx -t 를 실행하면 다음과 같이 문법 검사를 하고 ok 가 출력이 되는 것을 확인하면 된다.
root@KKOMZI_HPN54L:~# nginx -t
.
.
.
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
nginx reload
synosystemctl reload nginx 를 실행하면 다음과 같이 reload 되는 것을 알 수 있다.
root@KKOMZI_HPN54L:~# synosystemctl reload nginx
[nginx] reloaded.
include 문제점 발생(2025-12-21 추가)
DSM Web Station 에서 웹 포털 중에 1개를 사용안함으로 변경했었다.
그러면서 가상 호스트 설정파일에 다음 구문이 추가가 된 것으로 추측이 된다.
location / {
try_files $uri $uri/ /index.php?$args;
return 404;
}
그로 인해 기존 location 과 중복이 발생하면서 nginx 문법 검사시 다음 오류가 발생한다.
nginx: [emerg] duplicate location "/" in /usr/local/etc/nginx/conf.d/rewrite.conf:1
위와 동일한 상황이 아니라도 비슷하게 location 중복 외에 여러 예외 상황이 발생하는 경우가 있다는 걸 겪게 되면서 rewrite.conf 파일은 삭제하고 모든 가상 호스트 설정파일에 직접 추가하는 방법으로 다시 수정하였다.








