You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NGINX中通过location参数重写URL实现Openproject反向代理

问题原因

你遇到的资源路径缺失前缀问题,本质是OpenProject默认运行在根路径下,生成的静态资源、跳转链接都默认指向域名根目录,没有携带/openproject前缀,仅靠Nginx反向代理规则无法自动修正后端返回内容里的硬编码路径。

解决步骤

第一步:修改OpenProject自身的子路径配置(必须操作)

这是适配性最高的解决方案,不需要依赖Nginx的内容替换规则:

  • 如果你是通过系统包(deb/rpm)安装的OpenProject,执行以下命令设置子路径:
openproject config set OPENPROJECT_RAILS_RELATIVE_URL_ROOT="/openproject"

执行完成后重启OpenProject服务生效:

openproject restart
  • 如果你是通过Docker部署的OpenProject,在启动命令或者docker-compose.yml中添加对应环境变量:
environment:
  - OPENPROJECT_RAILS_RELATIVE_URL_ROOT=/openproject

修改完成后重启容器即可。

第二步:调整Nginx反向代理配置

修改你的location块配置,补充必要的代理头规则,确保OpenProject能正确识别前端访问的协议、域名和路径:

location /openproject/ {
   proxy_pass             http://10.0.0.1:8000/;
   # 以下代理头如果你的proxy.conf里已经包含可以不用重复添加
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header X-Forwarded-Proto $scheme;
   proxy_set_header X-Forwarded-Host $host;
   proxy_set_header X-Forwarded-Port $server_port;
   proxy_redirect default;

   include                /etc/nginx/conf.d/proxy.conf;
}

修改完成后执行nginx -s reload重载配置即可生效。

验证方法

配置完成后清除浏览器缓存,访问https://ngrp.com/openproject/ ,检查资源请求路径是否已经自动携带/openproject前缀,页面即可正常加载。

内容的提问来源于stack exchange,提问作者Knight01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 07:06:08