JetBrains Projector镜像Nginx反向代理相对路径配置咨询
解决Projector镜像在Nginx反向代理下的相对路径问题
1. 配置Projector容器的上下文路径
运行Projector镜像时,通过PROJECTOR_SERVER_CONTEXT_PATH环境变量指定你的完整相对路径前缀,所有资源请求会自动带上这个路径,而非根路径。以Docker启动为例:
docker run -d \ -e PROJECTOR_SERVER_CONTEXT_PATH="/projector/aosidjfa-se3f-489r-3849wef" \ -p 8888:8888 \ jetbrains/projector-idea:latest
(DataGrip镜像替换为jetbrains/projector-datagrip:latest即可)
2. 配置Nginx反向代理
在Nginx配置文件中添加对应反向代理规则,同时处理Projector依赖的WebSocket连接:
server { listen 443 ssl; server_name myserver.com; ssl_certificate /path/to/your/cert.pem; ssl_certificate_key /path/to/your/key.pem; location /projector/aosidjfa-se3f-489r-3849wef { proxy_pass http://localhost:8888; 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; # 必须配置WebSocket相关头,保证界面交互正常 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
3. 动态路径场景的适配
如果路径中的随机串(aosidjfa-se3f-489r-3849wef)是动态生成的,无法提前写死环境变量,可以通过脚本动态启动Projector容器:
- 先生成随机串,比如用
uuidgen命令 - 将生成的串拼接成上下文路径,作为环境变量传入容器
- 同步更新Nginx配置(或用正则匹配
/projector/[a-z0-9-]+的路径,再通过proxy_set_header传递前缀)
验证方法
重启Nginx和Projector容器后,访问目标URL,打开浏览器开发者工具的「网络」面板,确认所有JS、CSS、WebSocket请求的路径都带有/projector/aosidjfa-se3f-489r-3849wef前缀,而非根路径。
内容的提问来源于stack exchange,提问作者degr
相关产品推荐
相关产品推荐

