0

我在 Web 服务器上有一个应用程序(Openproject)。这是在http://10.0.0.1:8000/下可以访问的

在我的用户和网络服务器后面是一个 NGinx,我需要在一个特定的 URL 下发布它:https ://ngrp.com/openproject

所以我在我的 Nginx 配置中进行了以下更改(在这个 NGINX 实例中,多个网站使用“位置”设置发布):

  location /openproject/ {
   proxy_pass             http://10.0.0.1:8000/;
   include                /etc/nginx/conf.d/proxy.conf;
 }

但是当我通过 Reverseproxy 打开页面时,Webbrowser 只显示一个白页。


在 Webbrowser 调试器中,我看到某些路径是错误的,因此浏览器无法加载它。例子:

https://ngrp.com/assets/frontend/styles.c3a5e7705d6c5db9cfc1.css(URL 中缺少 /openproject/)

正确的是:

https://ngrp.com/openproject/assets/frontend/styles.c3a5e7705d6c5db9cfc1.css

那么有人可以告诉我,需要哪些配置,所以我可以在 URL https://ngrp.com/openproject/下成功打开项目?

非常感谢。

4

1 回答 1

0

当您proxy_pass代理整个 HTTP 请求时,这意味着您实际上是GET /openprojecthttp://10.0.0.1:8000/上请求,而不仅仅是GET /

您可以在 proxy_pass 之前添加此行以解决此问题并删除/openproject前缀:

rewrite /openproject/(.*) /$1 break;

这会将请求的 URL 从更改/openproject/.../...

于 2021-10-21T15:49:43.297 回答