第一次配反代,第一次openwrt下用docker,尼玛出了问题,不知道是哪边的问题,太难了
记录下来给自己以后再配做参考

注:我使用的openwrt固件为HOMELEDE,URL:https://github.com/xiaoqingfengATGH/HomeLede

nginx环境搭建

向来能图形的我是不愿意命令,能docker的我是懒得慢慢调,我这次使用的是cym1102/nginxwebui来搭建nginx环境。
URL:https://hub.docker.com/r/cym1102/nginxwebui

参照dockerhub中的教程能非常easy的搭建好,访问端口默认为8080
1.openwrt中依次点击docker-容器-添加,在弹出来的页面点击命令行,输入以下命令后提交

docker run -itd -v /home/nginxWebUI:/home/nginxWebUI -e BOOT_OPTIONS="--server.port=8080" --privileged=true --net=host --restart=always  cym1102/nginxwebu

不确定需不需要先在/home/下建对应文件夹,我都是先建好的,如果报错,可以按下述命令建文件夹

mkdir /home/nginxWebUI

2.给容器起个名字,点击提交

3.启动容器,通过[openwrt的IP]:8080访问页面
第一次启动会要求配置账号密码,配置完登录即可

配置防火墙

注意,这里是最大的坑,如果不是docker不在openwrt上,仅需要配置端口转发
但openwrt上的docker不仅需要配置端口转发,还需要加通信规则,我也不懂原理,试了无数遍试出来的

以放行端口:22000为例子
1.配置端口转发,规则如图,别忘了保存并应用

2.点击通讯规则,拉到下面新建转发规则

3.弹出的界面,其他保持默认,源端口和目标端口改成22000

4.点击保存并应用后,应该会生成如下的规则,检查一下是否一致

配置反代规则

申请证书

登录nginxWebUI后,点击证书管理-添加证书,就可以很方便的申请证书


可以配置自动续签,还是挺方便的

注:需事先获取Ali_Key,Ali_Secret,以及配置DDNS,这里不是本篇重点,不做介绍,请自行搜索教程

反向代理

逻辑图


大概讲一下我的需求并解释一下上面的图,我有一个虚拟机,多个服务分开

  • nas1上端口8080,8989各提供了一个服务
  • nas2上端口9001提供了一个服务

之前是每个端口做一个端口转发,放出的端口太多,不安全,我现在想实现的就是如上图所示的功能
,openwrt上的ngnix监听22000端口,也只放行这一个端口,通过URL来区分不同的服务

  • a.xyz.com:22000 访问web1
  • a.xyz.com:22000/web2 访问web2
  • b.xyz.com:22000 访问web3

操作步骤

1.web1的配置,点击反向代理-添加反向代理,配置如图

2.web2的配置,在1的基础上,再添加一条代理目标即可

3.web3的配置,再添加一条反向代理,配置如图

注:
http跳转https可以不勾选,如果勾选,注意不要写已使用的端口,比如默认的端口80已经被openwrt网页监听,所以需要改成其他未被占用的端口,如果需要使用,还需要配置对应的防火墙规则

借物表

封面:https://www.pixiv.net/artworks/85411236
作者:MORNCOLOUR