在VisionFive2上部署Nginx
分享作者:wx17445654289041
评测品牌:赛昉科技
评测型号:VF202040-B0
发布时间:2025-07-07 10:51:34
0
前言
本篇文章记录了笔者在 VisionFive2 开发板上部署 Nginx 服务,为内网 Web 服务提供反向代理,并使用域名劫持实现内网的域名访问 Web 服务。
开源口碑分享内容


### 硬件

*   **开发板**: VisionFive2 4GiB

*   **操作主机系统**: Windows 11 专业版

*   **内网主路由器**: mediatek/mt7981 with OpenWRT

*   **内网主服务器**: 飞牛os

### 内网 Web 服务

*   飞牛os(主服务器)

*   cups(远程打印服务)

*   quickreference(快速技术参考网页)

*   home assistant(智能家居服务)

*   qBittorrent(p2p下载)

### 内网拓扑结构

*   公网

*   主路由器(192.168.123.1)

*   VisionFive2(待分配)

*   主服务器(192.168.123.121)

> 主路由器是唯一与公网相连的设备,主路由器与 VisionFive2、主服务器通过以太网接口连接。用户设备通过 WLAN 接入主路由器,访问公网与内网服务。

## 操作步骤

1.  **安装操作系统**

   首先安装 StarFive 提供的 Debian 2409 镜像,并安装定制软件包。(可选,安装定制软件包与否不影响 Nginx 服务的配置,但推荐安装)。安装后在设置中打开 SSH 登录权限。

2.  **SSH 登录**

   在 PowerShell 中通过 SSH 登录到开发板的 `user` 用户。


3.  **配置固定 IP 地址**

   运行 `ip a` 命令获取本机 IP 地址。

   ```bash

   ip a

   ```

   获取本机 IP 地址后,在主路由 DHCP 设置中依照之前得到的 IP 与 MAC 地址为 VF2 固定分配内网地址,同时 VF2 板端保持 DHCP 方式获取地址不变即可。


4.  **安装 Nginx**

   运行以下命令更新软件包列表并安装 Nginx:

   ```bash

   apt update

   sudo apt install nginx -y

   ```


5.  **检查 Nginx 服务状态**

   安装完成后,检查 Nginx 服务是否正常运行:

   ```bash

   sudo systemctl status nginx

   ```

   使用操作主机的浏览器访问 VisionFive2 的固定 IP 地址(端口80),应能看到 Nginx 的欢迎页面。


6.  **配置域名劫持**

   在路由器中将计划用于内网服务的域名(例如 `qr.lan`)劫持到 VisionFive2 的 IP 地址。


7.  **创建 Nginx 代理配置文件**

   在 VisionFive2 中创建一个代理转发配置文件:

   ```bash

   sudo nano /etc/nginx/sites-available/proxy-services

   ```

   然后填写配置文件。此处按照笔者的内网 Web 服务填写,读者可根据自己内网情况进行修改:

   ```nginx

   server {

       listen 80;

       server_name 192.168.123.130; # 这里写 Nginx 服务器的 IP

       # 默认的根目录,可以留空或指向一个空白目录

       root /var/www/html;

       index index.html index.htm;

       # ---- 路由服务 ----

       location /router/ {

           # 注意 proxy_pass 后面的地址末尾有 /

           proxy_pass http://192.168.123.1:8080/;

           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_set_header X-Forwarded-Proto $scheme;

       }

       # ---- NAS ----

       location /nas/ {

           proxy_pass http://192.168.123.121:5666/;

           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_set_header X-Forwarded-Proto $scheme;

       }

       # ---- CUPS 打印服务 ----

       location /cups/ {

           proxy_pass http://192.168.123.121:631/;

           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_set_header X-Forwarded-Proto $scheme;

       }

       # ---- Quick Reference ----

       location /qr/ {

           proxy_pass http://192.168.123.121:13005/;

           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_set_header X-Forwarded-Proto $scheme;

       }

       # ---- qBittorrent ----

       location /qb/ {

           proxy_pass http://192.168.123.121:8085/;

           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_set_header X-Forwarded-Proto $scheme;

       }

   }

   ```

8.  **启用新配置**

   首先,检查 `sites-enabled` 目录中是否存在默认配置文件:

   ```bash

   ls /etc/nginx/sites-enabled/

   ```

   如果存在 `default` 文件,则删除该符号链接:

   ```bash

   sudo rm /etc/nginx/sites-enabled/default

   ```

   然后,为我们的配置文件新建符号链接:

   ```bash

   sudo ln -s /etc/nginx/sites-available/proxy-services /etc/nginx/sites-enabled/

   ```

9.  **检查并重载 Nginx 配置**

   检查 Nginx 配置文件语法是否正确:

   ```bash

   sudo nginx -t

   ```

   最后重新加载 Nginx 配置使其生效:

   ```bash

   sudo systemctl reload nginx

   ```

## 验证

在操作主机的浏览器中访问 `http://qr.lan` (或其他已配置的域名),如果请求被成功转发到对应的内网服务,则表示配置成功。


至此,成功地在 VisionFive2 上运行了 Nginx 服务作为内网反向代理。

全部评论
暂无评论
0/144