在synology nas的webstation架設quartz 4.0這個靜態網站,需要更改nginx config,讓public/my-post可以找到public/my-post.html,如官方所述。也就是需要加上 try_files $uri $uri.html $uri/ =404;在正確的nginx config 裡的 server location。
但 Synology 的 /etc/nginx/nginx.conf 是自動產生的,是從 /etc/nginx/nginx.conf.default copy來的,也就是說重啟之後,nginx.conf裡的變動會消失。/etc/nginx/sites-enabled/server.webstation.conf的變動也會消失,所以最後要把step 2和step 3的script在開機時照順序執行。
解決方法
stop 0: 需要root 權限
sudo -istep 1: 尋找WebStation有關的nginx config
找到nginx用的所有config, 找出和WebStation有關的config
“
nginx -T |grep "configuration file" | grep "webstation"step 2: 加入tryfile
加上try_files在 /etc/nginx/sites-enabled/server.webstation.conf的結尾,one-liner如下:
sed -i '$i\ location / {\n try_files $uri $uri.html $uri/ =404;\n}' /etc/nginx/sites-enabled/server.webstation.confstep3: 重啟nginx
DSM7:
systemctl reload nginxstep4: 設定開機執行
控制台>任務排程,新增兩個觸發任務,使用者指令,以root權限照順序執行。