体积很小的nginx_php7.4_docker_在unraid中的配置

体积很小的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, HostCustom: 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.rarisos/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的配置文件。

转载注明来源: 本文链接 来自osnosn的博客.

上一篇:Design Pattern - Chain of Responsibility(Java)


下一篇:java关于Locksupport.unpark的一个bug