在 synology dsm 上,我们使用 nginx 网站。在这个网站上,我们有(几个)虚拟主机。一个例子是,我们希望将端口“282”上的所有传入流量(超出路由器在端口 80 传入的特定域)重定向到另一个网站。(基本上相同,但使用 https 和端口 443)。
我们选择了根目录,并测试了加载页面是否确实index.html
从根目录加载了。使用 Apache 服务器,我们可以将添加.htaccess
到该根文件夹。
但是,可以为 nginx 实现什么样的结构呢?如果我查看配置,我会发现服务器正在使用:
server {
listen 282 default_server;
listen [::]:282 default_server;
server_name _;
root "/volume1/web/example.app";
index index.html index.htm index.cgi index.php index.php5 ;
error_page 400 401 402 403 404 405 406 407 408 500 501 502 503 504 505 @error_page;
location @error_page {
root /var/packages/WebStation/target/error_page;
rewrite ^ /$status.html break;
}
location ^~ /_webstation_/ {
alias /var/packages/WebStation/target/error_page/;
}
include /usr/local/etc/nginx/conf.d/ecd72a1b-c840-494f-8d6a-a837da4e0d94/user.conf*;
}
但是直接修改配置文件不起作用 - synology dsm 将在重新启动时覆盖这些文件。
那么,向网站添加自定义配置的规范方法是什么?或者更好的是 - 我如何告诉虚拟主机不仅加载页面,而是重定向?
答案1
您无法更改此配置,但您可以使用底部提到的用户配置文件来扩展它。在您的示例中/usr/local/etc/nginx/conf.d/ecd72a1b-c840-494f-8d6a-a837da4e0d94/user.conf
。您可以将所有必需的更改添加到此文件,这些更改在 Synology 重新启动(或 Webstation 重新启动)时不会被更改/删除。
sudo nginx -s reload
要测试您的更改,您可以通过ssh 会话重新加载 nginx 配置。