如何通过 Apache 反向代理与其他应用程序一起执行 OpenTest
How to execute OpenTest thru Apache reverse proxy along with other applications
首先是一些上下文
- 我们在 Azure
上有一个 Ubuntu Server 18.04 LTS 服务器 运行ning
- 我们公司的安全策略只允许通过 HTTP/HTTPS
访问端口 80 和 443
- 任何应用程序,例如 Jenkins 或 NodeJS 应用程序 运行在其他端口上应该使用通过 Apache 的反向代理
- 同一台服务器已经在端口 8080 上安装了 Jenkins 运行ning 并且 Jenkins 本身可以配置为 运行 使用他们所谓的“--path”参数,这使得它可以通过 URL http://localhost:8080/jenkins, hence reverse proxy is pretty straight forward to configure as anything going to "/jenkins" can just be pass to 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>
我们面临的问题
因此,对于 运行ning OpenTest,我们必须将其安装为 npm 包,然后可以通过 运行ning opentest server
命令执行,它将启动应用程序默认端口 3000 http://localhost:3000
但也可以通过配置更改首选端口 https://getopentest.org/reference/configuration.html#server-configuration
问题是我们需要重新路由任何东西,比方说将“/opentest”转到 opentest 服务器应用程序,但这不适用于所有静态资产、api url 等。 .. 因为该应用程序只是 运行ning 在端口 3000 http://localhost:3000
上,但似乎没有像 Jenkins 的“--path”这样的东西,所以我们不能只模仿相同的反向代理我们有詹金斯;这个想法是在路径“/opentest”中进行 opentest,类似于 http://localhost:3000/opentest
.
我们找不到任何允许我做类似 http://localhost:3000/opentest
的 OpenTest 配置,我们是 pm2 的新手,所以我们无法判断它是否可以使用 pm2 到 运行 "path" 或某种 "local known application domain" 中的 OpenTest 应用程序,我们可以使用它来重新路由反向代理到。
欢迎任何想法、想法、解决方法或解决方案;我们可能在这里采取了错误的方法,因此我们也将感谢您在这方面的任何见解。
谢谢!
从 1.2.0 版本开始,您可以使用 server.yaml
中的 urlPrefix
配置参数来完成此操作:
#...
urlPrefix: /opentest
首先是一些上下文
- 我们在 Azure 上有一个 Ubuntu Server 18.04 LTS 服务器 运行ning
- 我们公司的安全策略只允许通过 HTTP/HTTPS 访问端口 80 和 443
- 任何应用程序,例如 Jenkins 或 NodeJS 应用程序 运行在其他端口上应该使用通过 Apache 的反向代理
- 同一台服务器已经在端口 8080 上安装了 Jenkins 运行ning 并且 Jenkins 本身可以配置为 运行 使用他们所谓的“--path”参数,这使得它可以通过 URL http://localhost:8080/jenkins, hence reverse proxy is pretty straight forward to configure as anything going to "/jenkins" can just be pass to 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>
我们面临的问题
因此,对于 运行ning OpenTest,我们必须将其安装为 npm 包,然后可以通过 运行ning opentest server
命令执行,它将启动应用程序默认端口 3000 http://localhost:3000
但也可以通过配置更改首选端口 https://getopentest.org/reference/configuration.html#server-configuration
问题是我们需要重新路由任何东西,比方说将“/opentest”转到 opentest 服务器应用程序,但这不适用于所有静态资产、api url 等。 .. 因为该应用程序只是 运行ning 在端口 3000 http://localhost:3000
上,但似乎没有像 Jenkins 的“--path”这样的东西,所以我们不能只模仿相同的反向代理我们有詹金斯;这个想法是在路径“/opentest”中进行 opentest,类似于 http://localhost:3000/opentest
.
我们找不到任何允许我做类似 http://localhost:3000/opentest
的 OpenTest 配置,我们是 pm2 的新手,所以我们无法判断它是否可以使用 pm2 到 运行 "path" 或某种 "local known application domain" 中的 OpenTest 应用程序,我们可以使用它来重新路由反向代理到。
欢迎任何想法、想法、解决方法或解决方案;我们可能在这里采取了错误的方法,因此我们也将感谢您在这方面的任何见解。
谢谢!
从 1.2.0 版本开始,您可以使用 server.yaml
中的 urlPrefix
配置参数来完成此操作:
#...
urlPrefix: /opentest