38、【Ubuntu】【远程开发】拉出内网 Web 服务:构建静态网页(一)

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

之前内网穿透系列的 blog
【Ubuntu】【远程开发】内网穿透:SSH 反向隧道

已经建立了稳定的 SSH 反向隧道,然后在 Nuttx 系列的 blog
【OS】【Nuttx】【周边】文档构建渲染:效果呈现

介绍了如何生成 Nuttx 帮助文档网站,OK,现在介绍如何将两者结合起来,从外地访问内网的 Web 服务

拉出内网 Web 服务

首先,拉出内网 Web 服务是建立在 SSH 隧道已经建立的情况,如果这里没达成,先看该专栏下内网穿透系列 blog,建立起远程连接

OK,然后根据 Nuttx 系列最新的 blog
【Nuttx】【工具】Esbonio 更新后无法使用(一)
【Nuttx】【工具】Esbonio 更新后无法使用(二)

更新到 Esbonio v1.0 的插件,在终端输入

bash 复制代码
sphinx-build -b html Documentation/ sphinx_build/

这里 Documentation/ 是 Nuttx 中 Sphinx 项目的位置,sphinx_build/ 是构建件的输出目录,关于 -b 选项,在终端输入 sphinx-build --help,可以查看器帮助内容如下

这里面描述了 sphinx-build 命令比较多东西,这里稍微说下,首先是其命令格式的基本格式
sphinx-build [OPTIONS] SOURCEDIR OUTPUTDIR [FILENAMES...]

  • [OPTIONS]:表示可选参数,比如上面的 -b html,表示构建出 html 网页
  • SOURCEDIR:表示文档源文件所在的目录,也就是包含 .rst 文件的目录
  • OUTPUTDIR:表示生成的文档要输出到哪个目录
    [FILENAMES...]:可选,表示只重新构建指定的某些文件,一般不用,都是全量构建

OK,然后看下这里描述的东西

  • sphinx-build 命令的作用是将 .rst 等源文件生成漂亮的文档,比如网页,pdf 等,该命令会读取 SOURCEDIR 源目录里的文档源码,然后把生成的结果放到 OUTPUTDIR 输出目录里
  • sphinx-build 命令会在 SOURCEDIR 里查找配置文件 conf.py,这就是之前 blog 【OS】【Nuttx】【周边】文档构建渲染:安装 Sphinx 扩展(下) 里提到的,conf.py 里会定义文档的标题,作者,扩展,主题等设置
  • 如果是第一次写 Sphinx 项目,可以用 sphinx-quickstart 命令,这个命令会生成一些初始项目结构,比如 conf.py 和首页 index.rst
  • Sphinx 支持多种输出格式,比如网页 HTMLPDF/LaTeXLaTeX 用来写公式会很优美),man 手册页(类似 Linux 手册页那种),epub 电子书等,可以通过 -b <builder> 选项来选择格式,默认是网页 HTML,也就是 -b html
  • 默认情况下,Sphinx 只重新构建有改动,或者过期的文件(可以加快构建速度)

OK ,分析完 sphinx-build 命令的作用,然后可以看到网页 HTML 构建成功

OK,网页构建成功,接着在终端输入命令

bash 复制代码
python3 -m http.server 2025

就可以在 http://localhost:2025 上看到网页了,注意,这里说的 localhost 指的是远程的内网服务器,不是本地电脑

下面再说下 python3 -m http.server 2025 这组命令

之前的 blog 【OS】【Nuttx】【周边】效果呈现方案解析:端口映射(二) 介绍过,这个命令在启动本地服务器时,同时 VSCode 也会在后台持续监控远程机器上新启动的监听端口 ,比如通过 netstat 或 lsof 等工具命令,此时一旦发现有进程比如上面的 python -m http.server 2025 开始监听 localhost:8000就会触发端口自动转发功能,关于 VSCode 的端口自动转发功能,还是参考 blog

【OS】【Nuttx】【周边】效果呈现方案解析:端口映射(一)
【OS】【Nuttx】【周边】效果呈现方案解析:端口映射(二)
【OS】【Nuttx】【周边】效果呈现方案解析:端口映射(三)

这个时候就可以在本地浏览器打开 http://localhost:2025


OK,本篇先到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!更多内容见下篇 blog
【Ubuntu】【远程开发】拉出内网 Web 服务:构建静态网页(二)

相关推荐
Momo__1 小时前
VueUse createReusableTemplate —— 单文件组件内的模板复用神器
前端·vue.js
程序员小富1 小时前
我开源了一个开发者专属的智能 JSON 工具,得到了媳妇高度认可
前端·vue.js·后端
小小小小宇1 小时前
程序员如何给 LLM 装工具以及看懂推理过程
前端
写代码的皮筏艇1 小时前
React中的forwardRef
前端·react.js·面试
槑有老呆1 小时前
花三个月工资请了个 AI 程序员,结果它连青岛啤酒股价都查不了
前端
风骏时光牛马1 小时前
Verilog开发常见问题汇总解析
前端
子兮曰1 小时前
AI Coding Method Map:一张图看懂 AI 编程的完整链路
前端·人工智能·后端
weedsfly1 小时前
语法糖褪去之后——Babel 转译产物中的 JavaScript 本貌
前端·javascript
JustHappy2 小时前
「软件设计思想杂谈🤔」“切图仔”也能懂编译原理?框架源码也许没那么难。聊聊 Vue 的编译(上)
前端·javascript·vue.js