译者:西南依然故我狼
我家中两个软交换机,两个unraid 和两个威中国联通,家中的电子设备倒是没减少了,但应用软体领域在急速减少。
每减少两个应用领域的确须要两个交换电脑,有些还要要有两个IP。
ip 加交换电脑这类是极难展开梦境,对许多出访频度较为高的应用领域说实话,能别一,但对许多不常见的应用领域,出访的时候就须要先关上控制面板,我这儿是unraid ,找出加装的边线,在找实用性,接着在拼两个出访门牌号展开出访。整座过程很繁杂,会间接引致应用领域的采用工作效率大打折扣。右图是我unraid 中的应用领域
电视广告还有在不同电脑的威中国联通,黑群,两个软交换机以及许多合作开发服务项目,如git、rabbitmq等应用领域。
以我目前的科学知识覆盖范围,有三种形式能化解那个问题,两个是构筑网址,两个是自订出访搜索引擎。
作为两个孩童,因此为了提升该文的产品质量,我优先选择都要。
自订搜索引擎
具体来说是自订两个搜索引擎
那个搜索引擎能是搜索引擎服务项目供应商代销的,也能他们定的。搜索引擎服务项目供应商代销的益处就是能出外网出访时也能间接通过搜索引擎展开出访。总之,对自订的文本就根本无法他们家中互联网出访。
这儿我们假定你的二级搜索引擎为 abc.com具体来说我们有两个交换电脑,能是软交换机也能是硬交换机,但都要要有两个自订host 的功能,或者说能展开dns 拦截的能力。
我采用的是爱快,设置起来要稍微复杂许多,在dns 设置中按照图中的设置即可,总之,首选DNS和备选DNS按照他们的喜好填就是,剩下的就是要开启DSN代理,接着他们电脑的DNS 须要指定为网关的门牌号,我这儿是爱快的门牌号。对其他的交换电脑,往往都有自订host 或者自订挟持搜索引擎的功能。
广告须要注意的是,如果有旁交换机,须要同时在主交换机以及旁交换机展开自订搜索引擎的实用性。
接下来我们展开第两个搜索引擎出访的实用性,这儿我们以jellyfin 的实用性举例
具体来说在自订搜索引擎的边线新增一项,搜索引擎填写video.abc.com,备注为jellyfin 。最重要的是ip ,ip 门牌号须要填写两个具有nginx的服务项目器门牌号,具体的用途下文讲解。须要注意的是,对交换电脑固定为80的应用领域,如unraid控制面板,爱快控制面板等,此处的ip 能间接填写为所在的ip ,能间接实现自订搜索引擎出访。
我这儿是把所有的的搜索引擎全部执行了同两个ip 门牌号,为以后做自定义dns 做准备。加装nginx服务项目
具体来说创建两个linux的虚拟机,我这儿采用的unraid ,加装的ubuntu20,具体的加装形式不展开介绍,加装实用性如图所示:
其他采用默认即可。
加装完成之后,我们登录到虚拟机,创建nginx 的实用性文件
第一步:创建实用性文件夹,执行以下命令mkdir -p ~/docker/nginx/conf.d
第二步:创建实用性文件nginx.conf,执行以下命令
注意,以下命令为单条命了,全部复制后,一次执行。tee ~/docker/nginx/nginx.conf
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
worker_rlimit_nofile 65535;
events {
worker_connections 10240;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main $remote_addr – $remote_user [$time_local] “$request”
$status $body_bytes_sent “$http_referer”
“$http_user_agent” “$http_x_forwarded_for”;
access_log /var/log/nginx/access.log main;
sendfile on; #tcp_nopush on;
keepalive_timeout 300s;
client_header_buffer_size 8192k;
large_client_header_buffers 4 8192k;
gzip on;
client_max_body_size 5000m;
map $http_upgrade $connection_upgrade {
default upgrade; close;
}
include /etc/nginx/conf.d/*.conf;
}
stream {
include /etc/nginx/conf.d/*.stream;
}
EOF
第三步:创建实用性文件vidoe.abc.com的搜索引擎映射文件 video.conf,执行以下命令
后面每新增两个自订搜索引擎,我们就须要新增两个对应的xxx.conf 文件,并分别替换
命令中的server_name 后面的文本以及 proxy_pass的文本。tee ~/docker/nginx/conf.d/video.conf < listen 80;
server_name video.abc.com;
client_max_body_size 50M; #charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / { # 此处跟换为他们的jellyfin 的出访ip 加交换电脑
proxy_pass http://[更换为他们的jellyfin的ip和交换电脑];
proxy_connect_timeout 10s;
proxy_set_header Host $host;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
}
}
EOF最后,创建nginx 的docker 容器
docker run –name nginx -v ~/docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro -v ~/docker/nginx/conf.d:/etc/nginx/conf.d -p 80:80 -d nginx:1.20-alpine –restart=always
新增搜索引擎以及实用性文件后,须要重启nginx 服务项目,重启命令为:
docker restart nginx
自订网址
自订导航我采用的是最近站内很火的heimdall ,这儿我把网址加装在了和nginx同一台虚拟机中,也是通过docker 的展开加装
第一步创建实用性文件夹
mkdir -p ~/docker/heimdall/config
第二步创建heimdall 容器
docker run -d
–name=heimdall
-e PUID=1000
-e PGID=1000
-e TZ=Europe/London
-p 8000:80
-v /home/zrc/docker/heimdall/config:/config
–restart unless-stopped
lscr.io/linuxserver/heimdall:latest第三步,把网址作为 abc.com 的根搜索引擎展开出访
具体来说,把abc.com 在交换电脑中展开指定,具体参考上文
接着,把abc.com 作为nginx 的默认实用性,也就是说在 ~/docker/nginx/conf.d 中减少两个default.conf ,并指定搜索引擎
具体的命令为:
同样的,以下命令为单行,须要复制后一次执行。tee ~/docker/nginx/conf.d/default.conf < listen 80;
server_name abc.com;
client_max_body_size 50M; #charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://172.17.0.1:8000;
proxy_connect_timeout 10s;
proxy_set_header Host $host;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
}
}
EOF须要注意的是,我把nginx 和heimdall 都是采用了docker并加装到了同两个虚拟机,所以我这儿的proxy_pass 的ip 为docker0 的ip ,也就是docker 默认的网桥门牌号。
最后一步,重启nginx 即可。docker restart nginx
剩下的搜索引擎按照文中的步骤展开添加即可,交换机器中添加两个搜索引擎,新增两个nginx 的实用性文件,重启nginx ,网址中添加即可。
FAQ
为什么不间接采用docker 创建nginx
我测试过用unraid 间接创建两个nginx ,采用新的ip ,但我发现创建出的容器无法出访局域网内的电子设备,是间接无法连接,可能能通过交换机表的形式展开映射,我觉得也挺麻烦,就间接新增了两个虚拟机,并把闲置调整到最低为什么把网址和nginx 放到同两个虚拟机中
这儿有两个目的,第两个是nginx 和网址作为同一类应用领域,按照职责来说他们是一样的,所以放到了一起
另外两个为了展开演示,docker 之间互相出访,须要采用的ip为什么不采用unraid 自带的nginx 展开实用性
unraid 自带的nginx我验证过,具体来说是重启后会还原,总之能用挂载的形式,接着是我也验证过,不知道是版本的问题还是别的原因,实用性始终不成功。