我在一个web服务器上有一个应用程序(Openproject)。可在http://10.0.0.1:8000/
下访问在我的用户和Webserver后面是一个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;
}
但是当我通过反向代理打开页面时,web浏览器只显示一个白页。
在web浏览器调试器中,我看到一些路径是错误的,所以浏览器无法加载它。例子:
https://ngrp.com/assets/frontend/styles.c3a5e7705d6c5db9cfc1.css(URL中缺少/openproject/)
正确的格式是:
https://ngrp.com/openproject/assets/frontend/styles.c3a5e7705d6c5db9cfc1.css
所以有人能告诉我,需要哪些配置,所以我可以在URL下的Openproject https://ngrp.com/openproject/成功?
非常感谢。
当您使用proxy_pass
时,您代理了整个HTTP请求,这意味着您实际上是在http://10.0.0.1:8000/上请求GET /openproject
,而不仅仅是GET /
您可以在proxy_pass之前添加这一行来修复此问题并删除/openproject
前缀:
rewrite /openproject/(.*) /$1 break;
这将请求的URL从/openproject/...
更改为/...