0

首先是一些上下文

  • 我们有一个在 Azure 上运行的 Ubuntu Server 18.04 LTS 服务器
  • 我们公司的安全政策只允许通过 HTTP/HTTPS 访问端口 80 和 443
  • 在其他端口上运行的任何应用程序(例如 Jenkins 或 NodeJS)都应通过 Apache 使用反向代理
  • 同一台服务器已经在端口 8080 上运行了 Jenkins,并且 Jenkins 本身可以配置为使用他们所谓的“--path”参数运行,这使得它可以通过 URL http://localhost:8080/jenkins 访问,因此反向代理很漂亮直接配置为“/jenkins”的任何内容都可以传递给http://localhost:8080/jenkins,当前的 Apache 配置(适用于 Jenkins)如下:
        # Jenkins
        ProxyPass         /jenkins  http://localhost:8080/jenkins nocanon
        ProxyPassReverse  /jenkins  http://localhost:8080/jenkins
        ProxyRequests     Off
        AllowEncodedSlashes NoDecode
        <Proxy http://localhost:8080/jenkins*>
           Order deny,allow
           Allow from all
        </Proxy>

我们面临的问题

因此,为了运行 OpenTest,我们必须将其安装为 npm 包,然后可以通过运行opentest server命令执行,默认情况下它将在端口 3000 上启动应用程序,http://localhost:3000但也可以通过配置https:/更改首选端口/getopentest.org/reference/configuration.html#server-configuration

问题是我们需要重新路由任何东西,比方说“/opentest”到 opentest 服务器应用程序,但这不适用于所有静态资产、api url 等......因为应用程序只是在运行端口 3000http://localhost:3000但似乎没有像 Jenkins 的“--path”这样的东西,所以我们不能只模仿我们为 Jenkins 提供的相同反向代理;我们的想法是在路径“/opentest”中使用 opentest,例如http://localhost:3000/opentest.

我们无法找到任何允许我执行类似操作的 OpenTest 配置,http://localhost:3000/opentest而且我们是 pm2 的新手,因此我们无法判断是否可以使用pm2在“路径”或某种路径中运行 OpenTest 应用程序我们可以使用“本地已知应用程序域”将反向代理重新路由到。

欢迎任何想法、想法、变通办法或解决方案;我们可能在这里采取了错误的方法,因此我们也将感谢这方面的任何见解。

谢谢!

4

1 回答 1

1

从版本 1.2.0 开始,您可以使用urlPrefix配置参数server.yaml来完成此操作:

#...

urlPrefix: /opentest
于 2020-03-23T03:37:37.477 回答