使用Nginx给nas系统添加导航页

2020-04-14 16:36:38 18点赞 157收藏 11评论

本人背景是硬件工程师,有一些linux基础,但对网络编程一窍不通。

疫情在家闲来无事,整天逛张大妈,看见大家都在玩nas,有点手痒,也攒了一台算是all in one的家用服务器吧。NAS系统没有上黑群晖,试了试omv,感觉还不错(不过说实话装好了以后才发现自己好像并没有这个需求,纯粹是为了玩而玩使用Nginx给nas系统添加导航页 )。

添加理由

既然是all in one,就必须装上很多服务内容才有价值,比如omv登录、jellyfin、nextcloud什么的,能装上就都装上。联通宽带服务不错,打电话过去说要有监控要公网ip,区域经理来看了一下做了记录就给了公网ip。阿里云上做了ddns也就能远程使用家里的各种服务了。但是比较麻烦的是每个服务都有自己的端口,所以要不停的输入端口号,要是有个导航页就方便多了使用Nginx给nas系统添加导航页 。于是继续逛张大妈,发现群辉、威联通等等nas系统都有现成的web套件,装上就能用,可omv好像没有直接的插件,有点挠头。

后来发现Nginx不就是个web server吗,自己搭一个导航页不就行了么使用Nginx给nas系统添加导航页 。Google了一下Nginx,出来一堆名词:反向代理、负载均衡使用Nginx给nas系统添加导航页,我就是想建个导航页,不用这么复杂吧。。。

最后经过一通乱试,还真被我给试出来了,下面就具体简单的说一下怎么操作建立导航页吧,就是Nginx最简单的功能。

搭建流程

整个过程是建立在从docker安装Nginx的基础上,具体流程如下:

材料准备

网页材料是用的张大妈大神阿文菌的资源,具体网页的下载和修改请参考阿文菌的这篇文章:

折腾群晖笔记:使用群晖自带的 web 功能 一分钟安装自己的导航页#大男孩的快乐#征稿活动火热进行中。只要投稿就有50金币等你拿,更有三千元乐高大奖与达人Z计划专属权益等待优秀的你~>活动详情戳这里阿文菌| 132 评论121 收藏1k查看详情

把下载好的web包解压到nas下面。

在nas里建一个放Nginx的docker的目录,这个相信大家都很熟了。我的位置是"/storage/nas-pool/docker/nginx",里面再建一个文件夹"web/",把刚才下载好的web包解压到"web/"文件夹里,里面是web01,web02....等等。

具体流程

如何使用docker我相信玩nas的朋友们都很熟了,我这里简单的说一下如何使用docker安装Nginx。

我用的是omv 5版本,自带的docker管理界面是portainer,里面自带Nginx的模板,界面如下图:

portainer中的Nginx模板portainer中的Nginx模板


选中后出现下面的界面,随便填个名字,直接点运行容器,这里是为了把配置文件弄出来,一会就删了,如下图所示。

先随便建一个容器先随便建一个容器

ssh登录到nas里面输入以下命令

docker ps | grep nginx

把结果里面的容器名字记下来,就是你刚才随便填的内容,然后输入以下代码

docker cp nginx_test:/etc/nginx/ /storage/nas-pool/docker/nginx/

docker cp nginx_test:/usr/share/nginx/html/index.html /storage/nas-pool/docker/nginx/web

这样就把Nginx的docker配置拷贝出来了,这个容器也就完成历史使命了,可以在portainer里面删掉了,也可以使用以下命令删掉

docker stop nginx_test

docker rm nginx_test

接下来就是我们正式要建立的容器了,还是进入portainer的模板,如下图所示,这次不要忘记点开高级选项。

这次记得选个好名字这次记得选个好名字

高级选项里面要填写映射的端口和映射的目录如下图,填写好了以后点"deploying the container",就启动了Nginx。

高级选项填写高级选项填写

接下来如果是在内网,就可以直接在浏览器地址栏里输入

http://nas.ip:9001

这里的nas.ip就是nas的内网ip,9001是刚才映射的端口号,具体数字要跟刚才自己填的一样。回车后出现下面的页面就成功90%了。如果是外网访问的话不要忘记在路由器防火墙里添加端口映射就好。

Nginx原始页面Nginx原始页面

接下来继续通过ssh登录到nas,找到放配置文件的路径,我这里就是"/storage/nas-pool/docker/nginx/nginx"。用编辑器打开nginx.conf,看到里面有一句

include /etc/nginx/conf.d/*.conf

进到"/storage/nas-pool/docker/nginx/nginx/conf.d"文件夹,里面只有一个default.conf文件,用编辑器打开,看到里面有这么一句

location / {
root /usr/share/nginx/html;
index index.html index.htm;
}

改成

location / {
root /usr/share/nginx/html/web01;
index index.html index.htm;
}

这里是web01还是02具体看自己选择哪个模板,模板的修改也请参考阿文菌大大的文章。保存退出后重启docker,然后刷新刚才的网页。

完成~完成~

后记

很简单的一个过程,但是由于自己不懂,也爬了不少文,希望能够帮助到有相同需要的朋友。

展开 收起
11评论

  • 精彩
  • 最新
  • 搞复杂了,装个宝塔面板不就行了么?你这得劝退多少小白啊?

    校验提示文案

    提交
    第一次听说这个,我也想简单点啊

    校验提示文案

    提交
    收起所有回复
  • 这样做了,容器也启动了,就是ip+端口访问不了

    校验提示文案

    提交
    看看容器里面指定端口映射了吗?

    校验提示文案

    提交
    已经指定了端口映射,也没办法启动。现在换了一个别人打包的镜像,可以用了。

    校验提示文案

    提交
    收起所有回复
  • 自己写个html的静态页面,能有多难?

    校验提示文案

    提交
  • 我也在用這個導航頁。不錯。

    校验提示文案

    提交
  • heimdall docker解君愁

    校验提示文案

    提交
    我也是这个,可是不会搞https

    校验提示文案

    提交
    收起所有回复
  • 握个爪,我就是这么干的,不过比你简单点。

    校验提示文案

    提交
    咋做的,求分享

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章

amon-XD

Ta还没有介绍自己

关注 打赏
最新文章 热门文章
157
扫一下,分享更方便,购买更轻松