使用 virtualmin 在静态 url 上为本地 reactjs 应用程序提供反向代理服务

Reverse proxy to serve local reactjs application on a static url with virtualmin

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

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

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

  1. 在 Virtualmin 上,点击 'Create Virtual Server'

  2. 域名使用“subdomain.x.com”

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

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

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

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

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

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

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

  9. 如果您需要启用 websockets,请确保在服务->配置网站->编辑指令中将其添加到您的 apache 配置文件中。

RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
RewriteRule .* ws://localhost:12809%{REQUEST_URI} [P]

在 RewriteEngine On 部分

编辑:当我最初写这篇文章时,这是一个不必要的步骤,但我把它留在这里是为了展示如果你 want/need:

) 下载 '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