体积很小的nginx_php7.4_docker_在unraid中的配置
转载注明来源: 本文链接 来自osnosn的博客,写于 2021-04-01.
当需要传个大文件给朋友的时候,可选办法挺多,但都依赖第三方。
比如,发邮件(大文件作为附件),用xx网盘传递,用qq离线文件,群文件,微信直接发送。
家里的宽带已经有公网ipv6了。如果你有公网ipv4更好。
现在多一个选择:把文件放家里,共享出去,让朋友方便的时候自己下载。
这也有许多方案,比如装个nextcloud之类的云盘。装个Linux自己配置一个webserver。
如果你有 unraid,它的 docker 中,有个体积很小的 nginx+php7.4 ,配置也很简单,安全性还行。
(镜像包56MB,安装完占169MB。)
安装 docker 镜像 Linuxserver/nginx
- 在 unraid 的 APPS 中搜索
nginx
。能搜到两款。
linuxserver 只有50多MB。另一款 Binhex 有200多MB,体积有点大。 - 安装 linuxserver 的版,只有50多MB。
安装时修改一下网站的端口,把80,443改为别的口,防止和应用冲突。比如改为880,8443。
说明/描述什么的,自己看着修改。
其他的暂时默认,后续可以随时更改。
配置 docker 镜像 Linuxserver/nginx
- 在 docker 管理界面,找到这个 Linuxserver/nginx ,编辑它。
- 在最下面添加一个路径映射,点击
+ Add another Path, Port, Variable, Label or Device
选择Config Type:
=Path
Name:
随意Container Path:
容器内路径为/config/www/share
, (nginx的网站root为/config/www
)Host Path:
容器外部实际路径为/mnt/user/isos/share
, (unraid共享文件夹为/mnt/user/isos
)Default Value:
留空Access Mode:
=Read Only
只读Description:
随意 - 如果你的unraid的ipv6已经是eui64。
Network Type:
选择Bridge
,Host
或Custom: br0
都行。
不知道区别,就选Bridge
吧。 - 如果你的unraid的ipv6不是eui64。而你又不知道怎么设置。
那,nginx 的 docker 的Network Type:
选择Custom: br0
。
高级视图编辑中,Extra Parameters:
加入参数--sysctl net.ipv6.conf.all.disable_ipv6=0 --sysctl net.ipv6.conf.eth0.use_tempaddr=2
- 最后,把对应的IP,对应的端口,映射到你的路由器上,就行了。
参考【设置openwrt路由器的防火墙_允许从外网访问_ipv6服务_ipv4端口映射】
结果
- 比如你存了个文件
abc.rar
在isos/share
,就可以通过http://你的IP:端口1/share/abc.rar
下载到这个文件。
或https://你的IP:端口2/share/abc.rar
下载到这个文件。 - 你保存在 unraid 共享目录 isos/share 的文件,都可以通过这个docker提供的网站访问。并且支持php脚本。
- 安全性:最大隐患,就是支持php脚本文件。所以这个目录中,尽量不要放自己不知道的php文件。
如果你懂的话,直接修改nginx的配置,禁用php,就没问题了。 - 另外,这个网站还可以提供一个简单的密码保护。 通过给docker一个环节变量
FILE__PASSWORD
来设置。或者直接去修改nginx的配置文件。