如何解决在使用端口映射情况, dsm nginx 跳转到内部端口的问题?
資深大佬 : moxuanyuan 1
Issue
众所周知,家宽都没有 80/443 端口,只能在路由中设置端口映射。问题如果 url 尾没加”/“,nginx 自动会跳转,例如 https://www.test.com:44311/index 被错误的重定向至https://www.test.com/index/。作为不熟积运维的人,这个问题很头疼,我 google 了很久才找出来。更头疼的是,DSM 作为一个魔改 linux,很多地方会重写配置文件。
我 google 了很久,都解决不了。我估关键应该是没有找到正确修改 nginx 配置文件的地方
下面是我找到最可能解决的办法,但还是没效。
## DSM 6.2 # 创建对应域名的配置文件 # /usr/local/etc/nginx/conf.d/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/user.confg location / { if (-d $request_filename) { rewrite [^/]$ $scheme://$http_host$uri/ permanent; } } ## 执行命令重启 nginx synoservicecfg --restart nginx
参考
- Nginx causes 301 redirect if there’s no trailing slash
- 深度硬核文:Nginx 的 301 重定向处理过程分析
- nginx 处理 redirect location 端口丢失的问题
- 关于 Nginx 在 URL 末尾不加斜杠时的自动重定向
- Synology DSM nginx of WordPress 固定網址設定
大佬有話說 (14)
控制面板 > 外部访问 有一个端口设置,主可以尝试下有没有用