首页 > 解决方案 > 反向代理以使用 virtualmin 在静态 url 上为本地 reactjs 应用程序提供服务

问题描述

我有一个本地运行的 reactJS 应用程序,我想在 virtualmin 上托管的域上作为子域运行,以便该应用程序可以在本地托管但可以公开查看。

ngrok.io 允许您通过公开可见的子域为本地运行的 reactjs 应用程序(或许多其他东西)提供服务。

(我的目的是回答我自己的问题,因为当我搜索时,我遇到了很多死胡同。我在搜索答案时尝试使用尽可能多的关键字。)

标签: node.jsreactjsreverse-proxyvirtualmin

解决方案


  1. 在 Virtualmin 上,单击“创建虚拟服务器”

  2. 对于域名,使用“subdomain.x.com”

  3. 启用的功能:设置 DNS 区域(如有必要)、启用 apache 网站和启用 apache ssl 网站。

  4. 单击服务器配置 -> 编辑代理网站

  5. 设置“启用代理?” 到“是”。代理到 url:http://localhost:12809/

  6. 在您的本地主机上运行您的 reactjs 应用程序。我们假设它在端口 8301 上运行。

  7. 在您的本地主机上,建立一个到您的服务器的 ssh 隧道;做:

    ssh -N -T -R 12809:localhost:8301 user@x.com

  8. 重新加载“subdomain.x.com”,您本地运行的 reactjs 应用程序将在那里公开显示。

  9. 如果您需要启用 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


推荐阅读