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 支持多种输出格式,比如网页 HTML,PDF/LaTeX(LaTeX 用来写公式会很优美),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 服务:构建静态网页(二)

相关推荐
小码哥_常5 小时前
一套自己部署的 IM,客户端是同一份 Flutter
前端·后端
蜗牛攻城狮8 小时前
微前端四大方案选型对比与最佳实践:qiankun、micro-app、wujie、Module Federation
前端·微前端·qiankun·前端架构·micro-app·wujie
HideF8 小时前
Linux
linux·服务器·网络
她说可以呀9 小时前
Vue插槽
前端·javascript·vue.js
qq_448011169 小时前
Vue + Jinja2两套模版与法冲突造成undefinedError
前端·javascript·vue.js
aixingpan9 小时前
aixingpan.cn API开发文档:前端查询夏令时和时区接口指南
前端·php
2601_9583529010 小时前
23.5×19mm 换掉一整条音频链?|A-68 集成了什么:ADC / DAC / 24.576MHz 时钟 / AEC / 波束降噪,主控仅需 6 根线
前端·音视频·ai降噪·回声消除·语音模块
Ruiery10 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
志尊宝10 小时前
AI原生前端开发(039):AI辅助的Nuxt 4全栈开发
前端·vue.js·ai-native
FRing0311 小时前
JavaScript入门到精通三十二(深拷贝、浅拷贝、递归函数)
开发语言·前端·javascript