node.js - 反向代理以使用 virtualmin 在静态 url 上为本地 reactjs 应用程序提供服务
问题描述
我有一个本地运行的 reactJS 应用程序,我想在 virtualmin 上托管的域上作为子域运行,以便该应用程序可以在本地托管但可以公开查看。
ngrok.io 允许您通过公开可见的子域为本地运行的 reactjs 应用程序(或许多其他东西)提供服务。
(我的目的是回答我自己的问题,因为当我搜索时,我遇到了很多死胡同。我在搜索答案时尝试使用尽可能多的关键字。)
解决方案
在 Virtualmin 上,单击“创建虚拟服务器”
对于域名,使用“subdomain.x.com”
启用的功能:设置 DNS 区域(如有必要)、启用 apache 网站和启用 apache ssl 网站。
单击服务器配置 -> 编辑代理网站
设置“启用代理?” 到“是”。代理到 url:http://localhost:12809/
在您的本地主机上运行您的 reactjs 应用程序。我们假设它在端口 8301 上运行。
在您的本地主机上,建立一个到您的服务器的 ssh 隧道;做:
ssh -N -T -R 12809:localhost:8301 user@x.com
重新加载“subdomain.x.com”,您本地运行的 reactjs 应用程序将在那里公开显示。
如果您需要启用 websockets,请确保将其添加到您的 apache 配置文件中,位于 Services->Configure Website->Edit Directives。
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://localhost:12809%{REQUEST_URI} [P]
在 RewriteEngine On 部分
编辑:当我最初写这篇文章时,这是一个不必要的步骤,但我把它留在这里是为了展示如果你想要/需要如何通过另一台服务器进行路由:
) 将“caddy”下载到您的 virtualmin 用户主目录:https ://caddyserver.com/download
) 然后在 caddy 上运行反向代理,从将连接到本地主机的端口(在本例中为 9000)到从 subdomain.x.com 提供服务的端口:
`./caddy reverse-proxy --from :12809 --to 127.0.0.1:9000`
)在这种情况下,您将在本地主机上运行 ssh,例如9000:localhost:8301
推荐阅读
- css - Material UI:如何在用户与滑块交互时更改滑块拇指的可见性,即更改滑块值?
- python - 在日期时间值列表中,如何获取具有特定日期(不是 datw 时间)的元素
- javascript - 如何在 OOP 中使用 fetch?
- php - woocommerce 帐户页面中的隐藏元素(行)
- java - 触发 @OneToMany 延迟获取
- docker - “drone exec”不支持管道类型(exec)
- reactjs - 在显示 react-apexchart 之前显示加载程序
- python-3.x - 使用 Scapy 发送嗅探到的 ESP 数据包
- php - 为什么没有在 php 中使用存储的访问令牌和刷新令牌创建谷歌日历事件
- filemaker - FileMaker 为记录的所有/部分字段自动生成按钮和字段?