OpenWRT/LEDE软路由下利用docker安装nginx实现反向代理

2023-11-24
0评论
/
847阅读
爱搜啊

在开始之前,请确保已经正确安装并配置了 LEDE 路由器,并且具备管理员权限。同时,你还需要安装 Docker 并了解基本的 Docker 操作方法。

步骤一:安装 Docker

  1. 在 LEDE 控制台中,输入以下命令:

opkg update
opkg install docker
  1. 安装完成后,启动 Docker 服务:

/etc/init.d/docker start
  1. 验证 Docker 是否成功安装:

docker version

如果输出的结果包含版本信息,则说明 Docker 已经成功安装。

教程更新,请下翻到“四、 创建并启动 nginx 容器”步骤

OpenWRT/LEDE软路由下利用docker安装nginx实现反向代理

步骤二:创建 Docker 容器

  1. 先在 /mnt/docker 目录下创建文件夹

cd /mnt/docker
mkdir nginx
mkdir nginx/conf
mkdir nginx/conf.d
cd nginx
  1. 在该目录下创建一个名为 "Dockerfile" 的文件,并编辑该文件,输入以下内容:

FROM nginx:latest
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80

这个 Dockerfile 文件将会基于最新版的 Nginx 镜像,并将我们自己的 Nginx 配置文件复制到容器中。

  1. 在 "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 端口上。你可以根据自己的实际情况进行修改。

  1. 执行以下命令,创建一个名为 "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 端口上。

步骤三:添加其他服务

  1. 在 LEDE 路由器上,开启需要代理的服务(如 HTTP 服务),并记录其 IP 地址和端口号。

  2. 在 "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 的服务上。

  1. 构建一个新的 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 端口,這樣就可以不帶端口訪問了。


本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件


于2023-11-24发布