
前一段时间有一位粉丝问我如何实现IP/dms访问ip:5000,IP/photo访问图片服务,当时答应他要做一个教程,但是最近工作太忙一直,没有时间做,再次先说一声对不起。
好了废话不多说,现在就开始教程(本来还想录一个视频的,但是时间来不及,之后补一个)
一、更改设置释放群晖NAS的80端口
要实现IP+目录直接访问相应服务首先要把群晖的80端口释放出来,在群晖NAS上这确实是个很棘手的问题,因为群晖web UI的Nginx服务程序把80端口给霸占了。你即使想把Docker-nginx端口设置成80,你也无法设置。我们可以把群晖自带Nginx原来的80端口替换为8080,这样就可以释放出80端口给Docker使用了。所以为了安装Docker-nginx,我们先来把群晖NAS的Nginx的80端口给释放出来,我决定用8080端口替换80。
1、首先用你Windows电脑上的putty软件通过ssh方式登录进你的群晖NAS。输入你的群晖IP保持port 22,点open就可输入账户和你群晖的密码按回车以ssh进入群晖NAS了。
putty下载地址 https://www.lanzous.com/i2eqaxa 密码:8888

登录群辉

登录群晖

切换到root账户
2、切换路径。输入 cd /usr/syno/share/nginx 切换到nginx文件夹,然后在输入ls,即可看到nginx下的文件了。尤其注意我划线的三个文件:server.mustache、DSM.mustache和WWWService.mustache。待会我们要修改的就是这个三个文件。

找到要修改的文件
3、用VI修改80端口为你想替换的端口
之前在树莓派上都是用nano编辑,但是群晖NAS默认应该没安装nano,只能用VIM编辑器修改文件了。VIM有点难用,建议操作前上网搜索学习一下VIM的使用方法。输入vi server.mustache,即可打开server.mustache。按下按键i进入插入模式,用方向键移动光标找到80,然后在后面输入80,使原来的80变成8080。然后按ESC退出编辑模式,输入:wq保存并退出。用同样的方法修改剩下的DSM.mustache和WWWService.mustache。

替换端口
4、在设置界面设置保存,自动重启生效。
设置完去DSM随便点个无关紧要的设置,然后点应用即可使nginx重启生效。现在你的群晖NAS的80端口就自由了。
二、用docker在群晖NAS上安装nginx
1、搜索下载nginx

搜索nginx
2、设置启动nginx容器

启动

高级设置

设置自动启动

本地端口设置为80
点击确定后,然后下一步、应用,则可启动nginx容器
三、设置反向代理
1、进入容器详情

启动控制台1
2、然后选择终端机

如果没有显示图中情况,可以新增一个终端
3、查找nginx.conf文件的目录
输入nginx -t
返回结果包含配置文件目录
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
其中/etc/nginx/nginx.conf即为目录位置
4、编辑nginx.conf文件
输入vi /etc/nginx/nginx.conf
然后点击i
修改配置文件为
server { listen 80; #demo.domain.com为你的访问域名,如果不限制域名,请设置为下划线 server_name demo.domain.com; #通过访问dms二级目录来访问群晖原5000端口内容 location /dms/ { #后面的斜杠是一个关键,没有斜杠的话就会传递dms到后端节点导致404 proxy_pass http://你的群晖ip:5000/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } #通过访问photo二级目录来访问群晖原相册内容 location /photo/ { #后面的斜杠是一个关键,没有斜杠的话就会传递photo到后端节点导致404 proxy_pass http://你的群晖ip/photo/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } #其他路径默认访问前台网站 location / { proxy_pass http://你的群晖ip:5000; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
然后按ESC退出编辑模式,输入:wq保存并退出
最后重启容器就可以使用群晖IP/dms访问群辉IP:5000了
其实还有一个方案,直接修改群晖的nginx达到多目录访问不同服务的目的,但是我不推荐,毕竟群晖多是拿来储存文件的,数据最重要,修改了不稳定,如果想要修改,本篇文中已经提示了修改位置了,就是群晖的那几个nginx文件,修改方法和上面/etc/nginx/nginx.conf这个文件一样,如果还有不懂的,欢迎留言。(我也想把这个方案写下来,奈何没有这么多时间,还得上班赚钱)
下一篇文章估计会写如何使用二级域名访问不同的服务,这个比较简单。