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 服务:构建静态网页(二)

相关推荐
极地星光4 分钟前
dmesg 工具的核心功能与作用
linux
神仙别闹25 分钟前
基于C语言实现B树存储的图书管理系统
c语言·前端·b树
玄魂43 分钟前
如何查看、生成 github 开源项目star 图表
前端·开源·echarts
福尔摩斯张1 小时前
C++核心特性精讲:从C语言痛点出发,掌握现代C++编程精髓(超详细)
java·linux·c语言·数据结构·c++·驱动开发·算法
hgz07101 小时前
Linux服务器环境部署与JMeter压测准备
linux·服务器·jmeter
前端一小卒1 小时前
一个看似“送分”的需求为何翻车?——前端状态机实战指南
前端·javascript·面试
syt_10132 小时前
Object.defineProperty和Proxy实现拦截的区别
开发语言·前端·javascript
ShirleyWang0122 小时前
VMware如何导入vmdk文件
linux·数据库
遝靑2 小时前
Flutter 跨端开发进阶:可复用自定义组件封装与多端适配实战(移动端 + Web + 桌面端)
前端·flutter
cypking2 小时前
Web前端移动端开发常见问题及解决方案(完整版)
前端