关于tileserver-gl的基本安装,参考:tileserver-gl基于docker的安装和运行命令
关于tileserver-gl的配置文件语句,参考:TileServer-GL Configuration file 的使用方法
参考官网的部署指引,采用TileServer-GL + Nginx部署方案,tileserver-gl隐藏在后端,Nginx在前端,做负载、反向代理、权限控制等等。
由于docker运行映射端口不受防火墙控制的问题(参考:关于docker 绕过防火墙开放端口的问题)
docker 启动的时候,不映射宿主端口:
# 容器仅仅暴露自己的80端口
docker run -it -v $(pwd):/data --expose 80 klokantech/tileserver-gl -c myconfig.json
# 查看容器ID
docker ps
# 查看容器IP
docker inspect <容器ID> | grep IPAddress
# 比如:172.17.0.2
Nginx的代理设置:
server
{
listen 8283; #监听端口
server_name localhost; #域名
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-PORT $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://172.17.0.2/;
}
}
那么,通过外部的 http://localhost:8283
可以访问容器的 http://172.17.0.2:80