使用nginx和路由器进行内网免端口进行应用访问猪八戒现已74岁了,与”嫦娥“恩爱多年,如今家庭美满

2023-06-02 0 807

译者:西南依然故我狼

我家中两个软交换机,两个unraid 和两个威中国联通,家中的电子设备倒是没减少了,但应用软体领域在急速减少。

每减少两个应用领域的确须要两个交换机,很多还要要有两个IP。

ip 加交换机这类是极难展开梦境,对许多出访频度较为高的应用领域说实话,能别一,但对许多不常见的应用领域,出访的时候就须要先关上控制面板,我这儿是unraid ,找出加装的边线,在找实用性,接着在拼两个出访门牌号展开出访。整座操作过程很繁杂,会间接引致应用领域的采用工作效率大打折扣。
使用nginx和路由器进行内网免端口进行应用访问猪八戒现已74岁了,与”嫦娥“恩爱多年,如今家庭美满

右图是我unraid 中的应用领域

使用nginx和路由器进行内网免端口进行应用访问猪八戒现已74岁了,与”嫦娥“恩爱多年,如今家庭美满

还有在不同电脑的威中国联通,黑群,两个软交换机以及许多合作开发服务项目,如git、rabbitmq等应用领域。

以我目前的科学知识覆盖范围,有三种形式能化解那个问题,两个是构筑网址,两个是自订出访搜索引擎。

作为两个孩童,因此为的是提升该文的产品质量,我优先选择都要。

自订搜索引擎

具体来说是自订两个搜索引擎

那个搜索引擎能是搜索引擎服务项目供应商代销的,也能他们定的。搜索引擎服务项目供应商代销的益处就是能在外网出访时也能间接通过搜索引擎展开出访。总之,对自订的文本就根本无法他们家中互联网出访。

这儿他们假定你的二级搜索引擎为 abc.com

具体来说他们有两个交换电脑,能是软交换机也能是硬交换机,但都要要有两个自订host 的机能,换句话说能展开dns 截击的潜能。

我采用的是爱快,增设起来要稍微复杂许多,在dns 增设中按照图中的增设即可,总之,首选DNS和备选DNS按照他们的喜好填就是,剩下的就是要开启DSN代理,接着他们电脑的DNS 须要指定为网关的门牌号,我这儿是爱快的门牌号。
使用nginx和路由器进行内网免端口进行应用访问猪八戒现已74岁了,与”嫦娥“恩爱多年,如今家庭美满

对其他的交换电脑,往往都有自订host 或者自订挟持搜索引擎的机能。

使用nginx和路由器进行内网免端口进行应用访问猪八戒现已74岁了,与”嫦娥“恩爱多年,如今家庭美满

须要注意的是,如果有旁交换机,须要同时在主交换机以及旁交换机展开自定义搜索引擎的实用性。

接下来他们展开第两个搜索引擎出访的实用性,这儿他们以jellyfin 的实用性举例

具体来说在自订搜索引擎的边线新增一项,搜索引擎填写video.abc.com,备注为jellyfin 。最重要的是ip ,ip 门牌号须要填写两个具有nginx的服务项目器门牌号,具体的用途下文讲解。

须要注意的是,对交换机固定为80的应用领域,如unraid控制面板,爱快控制面板等,此处的ip 能间接填写为所在的ip ,能间接实现自定义搜索引擎出访。

我这儿是把所有的的搜索引擎全部执行了同两个ip 门牌号,为以后做自订dns 做准备。

加装nginx服务项目

具体来说创建两个linux的虚拟机,我这儿采用的unraid ,加装的ubuntu20,具体的加装形式不展开介绍,加装实用性如图所示:

使用nginx和路由器进行内网免端口进行应用访问猪八戒现已74岁了,与”嫦娥“恩爱多年,如今家庭美满

其他采用默认即可。

加装完成之后,他们登录到虚拟机,创建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

自订网址

使用nginx和路由器进行内网免端口进行应用访问猪八戒现已74岁了,与”嫦娥“恩爱多年,如今家庭美满

自订导航我采用的是最近站内很火的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我验证过,具体来说是重启后会还原,总之能用挂载的形式,接着是我也验证过,不知道是版本的问题还是别的原因,实用性始终不成功。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务