Nginx HTTPS反向代理Rundeck页面异常静态资源404如何解决?
故障本质
Rundeck生成静态资源链接时未正确识别前端HTTPS协议,导致部分资源路径匹配错误,无需降级为HTTP代理,可通过以下配置修复:
修复方案(保留HTTPS反向代理)
1. 修改Nginx反向代理配置
补充完整的转发头与重定向规则,完整配置如下:
location /rundeck/ { proxy_http_version 1.1; 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-Port $server_port; proxy_pass http://192.168.1.102:4440/rundeck/; # 将后端返回的HTTP重定向自动替换为HTTPS proxy_redirect http://$host/rundeck/ https://$host/rundeck/; }
2. 修改Rundeck服务配置
除已有的RUNDECK_SERVER_CONTEXTPATH=/rundeck、RUNDECK_SERVER_FORWARDED=true外,新增以下配置(环境变量或配置文件修改二选一即可):
- 环境变量添加:
RUNDECK_GRAILS_SERVERURL=https://host.domain/rundeck RUNDECK_FRAMEWORK_URL=https://host.domain/rundeck - 配置文件修改:
在rundeck-config.properties中修改/新增:
在grails.serverURL=https://host.domain/rundeck server.servlet.context-path = /rundeckframework.properties中修改/新增:framework.rundeck.url = https://host.domain/rundeck/
3. 生效验证
修改配置后依次重启Nginx、Rundeck服务,清空浏览器缓存后重新访问即可解决静态资源404问题。
临时规避方案(无需修改服务端配置)
如果仅需临时访问,可在浏览器开发者工具的设置中关闭「启用JavaScript源映射」选项,即可屏蔽js.map文件加载失败的报错,不影响核心功能使用。
内容的提问来源于stack exchange,提问作者YANO Takashi
相关产品推荐
相关产品推荐

