在群晖上使用nginx

2022-01-09  本文已影响0人  小李子Levy

前言

家里有许多服务,包括需要在外面访问的(比如git服务,nas服务等),还有一些只在内网访问的(比如jenkins,docker仓库),之前这些统一用了树莓派部署的nginx作为反向代理,一直想把这个设备优化掉,把nginx服务放到群晖上,做成all in one,但是一直面临着端口占用的问题。
对外的服务还好说,因为电信的封锁80,443的缘故,所以本来也无法使用这两个端口,随便搞个端口做映射就好了,但是内网的服务就不想在访问时还加个端口号了,但是群晖自身的nginx占用了80和443端口,无法再进行映射。最近终于通过docker的macvlan解决了问题,特意记录一下。

实现

创建macvlan网络

参考这里

创建容器

docker run -d --name nginx --network vnet --ip 192.168.3.240 nginx
然后局域网内通过ip就能够直接访问了

image.png
直接通过80和443端口访问
image.png

注意

根据网络创建的那篇文章,为了能够使容器和宿主机能够相互访问,需要在物理网卡上再创建一个macvlan,但是这个配置我没有在群晖上找到持久化的方法,群晖重启之后就会时效,所以这里我使用了个定时任务来实现。在群晖上配了个5分钟一次的定时任务就好。

#!/bin/bash
if ip r |grep -w "192.168.3.240"; then
  exit 0
else
  ip link add net-shim link ovs_eth1 type macvlan mode bridge
  ip addr add 192.168.3.239/32 dev net-shim
  ip link set net-shim up
  ip route add 192.168.3.240/28 dev net-shim
fi
上一篇下一篇

猜你喜欢

热点阅读