OpenWRT/LEDE软路由下利用docker安装nginx实现反向代理
在开始之前,请确保已经正确安装并配置了 LEDE 路由器,并且具备管理员权限。同时,你还需要安装 Docker 并了解基本的 Docker 操作方法。
步骤一:安装 Docker
-
在 LEDE 控制台中,输入以下命令:
opkg update opkg install docker
-
安装完成后,启动 Docker 服务:
/etc/init.d/docker start
-
验证 Docker 是否成功安装:
docker version
如果输出的结果包含版本信息,则说明 Docker 已经成功安装。
教程更新,请下翻到“四、 创建并启动 nginx 容器”步骤
步骤二:创建 Docker 容器
-
先在 /mnt/docker 目录下创建文件夹
cd /mnt/docker mkdir nginx mkdir nginx/conf mkdir nginx/conf.d cd nginx
-
在该目录下创建一个名为 "Dockerfile" 的文件,并编辑该文件,输入以下内容:
FROM nginx:latest COPY nginx.conf /etc/nginx/nginx.conf EXPOSE 80
这个 Dockerfile 文件将会基于最新版的 Nginx 镜像,并将我们自己的 Nginx 配置文件复制到容器中。
-
在 "nginx" 目录下创建一个名为 "nginx.conf" 的文件,并编辑该文件,输入以下内容:
worker_processes auto; events { worker_connections 1024; } http { server { listen 80; server_name localhost; location / { proxy_pass http://localhost:8000; } } }
这个 Nginx 配置文件将会监听端口 80,并将所有的请求代理到本地的 8000 端口上。你可以根据自己的实际情况进行修改。
-
执行以下命令,创建一个名为 "nginx-proxy" 的 Docker 容器:
docker build -t nginx-proxy . docker run -d --name nginx-proxy -p 80:80 nginx-proxy
这个命令将会基于刚才创建的 Dockerfile 文件,构建一个名为 "nginx-proxy" 的 Docker 镜像,并创建一个名为 "nginx-proxy" 的 Docker 容器,并将容器的 80 端口映射到 LEDE 路由器的 80 端口上。
步骤三:添加其他服务
-
在 LEDE 路由器上,开启需要代理的服务(如 HTTP 服务),并记录其 IP 地址和端口号。
-
在 "nginx" 目录下创建一个名为 "default.conf" 的文件,并编辑该文件,输入以下内容:
server { listen 80; server_name yourserver.com; location / { proxy_pass http://192.168.1.2:8080; } }
这个配置文件将会监听名为 "yourserver.com" 的域名,将所有请求代理到 IP 地址为 192.168.1.2,端口号为 8080 的服务上。
-
构建一个新的 Docker 镜像,并创建一个新的 Docker 容器:
docker build -t your-service . docker run -d --name your-service -p 80:80 your-service
同样地,这个命令将会基于刚才创建的 Dockerfile 文件,构建一个名为 "your-service" 的 Docker 镜像,创建一个名为 "your-service" 的 Docker 容器,并将容器的 80 端口映射到 LEDE 路由器的 80 端口上。
现在,你已经成功设置了一个 Nginx 反向代理服务器,并添加了其他服务。通过该服务器,你可以使用一个域名或 IP 地址来访问多个不同的服务。
四、 创建并启动 nginx 容器
先在 /mnt/docker 目录下创建文件夹
cd /mnt/docker mkdir nginx mkdir nginx/conf mkdir nginx/conf.d cd nginx
创建 nginx.conf,内容如下:
/etc/init.d/docker start0
启动参数如下
/etc/init.d/docker start1
浏览器访问 http://ledeip:88 就能访问到 Nginx
五、配置 nginx 虚拟主机(域名)反向代理
增加虚拟主机配置文件
以反向代理群晖 NAS 服务为例
在 /mnt/docker/nginx/conf 文件夹增加 dsm.open4j.com 配置文件:
配置文件名为二级域名
server_name 也为二级域名
/etc/init.d/docker start2
重启 nginx 容器
/etc/init.d/docker start3
在主路由中配置端口映射
以 ROS 为例
输入 http://dsm.open4j.com:88 就能访问到群晖 NAS 了
转发其他服务
转发其他服务和转发 NAS 一样在 /mnt/docker/nginx/conf/ 目录下添加一个配置文件
修改 server_name 和 proxy_pass 地址
然后重启 nginx 容器
/etc/init.d/docker start3
输入 配置的 server_name 对应的域名就能访问了
也可以 將 lede 的 88 端口映射到外網 80 端口,這樣就可以不帶端口訪問了。
点击链接加入群聊三群:751529538
点击链接加入群聊二群:376877156
点击链接加入群聊【路由器交流群:622891808已满】
本站附件分享,如果附件失效,可以去找找看
饿了么红包