我在谷歌云上的容器中运行tileserver-gl。到目前为止一切都很好。如果能够转到tileserver-gl 应用程序页面并查看我的数据预览,则表示成功。
接下来我使用此处的说明:https://cloud.google.com/run/docs/internet-proxy-nginx-sidecar 在我的tileserver-gl应用程序前面设置一个代理服务器。这些步骤完成后没有错误,我可以查看通过代理提供的tileserver-gl 应用程序页面。但是,数据预览不再可见,表明某些东西未正确通话/连接。
这是我的 nginx.conf 文件。通过 gcloud UI,nginx 前端配置为在 8080 上运行,tileserver-gl 应用程序定义了可用的环境 8888。
####nginx.conf#####
server {
# Listen at port 8080
listen 8080;
# Server at localhost
server_name _;
location / {
proxy_pass http://127.0.0.1:8888;
# Various Headers to Ensure Tileserver-GL Generated URLs Visible
proxy_set_header X-Forwarded-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 Host $http_host;
}
}
我尝试使用 docker-compose 在本地设置相同的架构,为 nginx 代理和应用程序运行单独的容器。这非常有效。将其部署到 gcloud 时会出现问题。
您共享的 nginx.conf 文件似乎表明 nginx 服务器正在侦听端口 8080,并且代理对tileserver-gl 应用程序的请求在端口 8888 上运行。配置中设置的标头对于传递必要的信息至关重要,以确保nginx 和tileserver-gl 应用程序之间的正确通信。
您可以考虑再次检查网络配置,以确保 nginx 和tileserver-gl 应用程序之间的通信已启动并正在运行,并验证端口是否打开并正确配置。