教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤


Posted in Servers onSeptember 25, 2021

一、背景

最近有小伙伴遇到了大数据量地图加载慢的情况,观察iServer性能并未发挥到极致,所以通过搭建子域的方式成功实现了浏览速度的提升。
子域能对加载速度进行提升是因为浏览器对同一个域名服务的并发请求数量有限制,通过 Nginx 服务部署多个子域名,加大向 iServer 发送数据请求的并发量,从而达到提升加载速度的目的。

二、Nginx配置步骤

1.修改Nginx 配置nginx.conf,监控多个端口

server {
		listen       8881;
		listen       8882;
		listen       8883;
		listen       8884;
		listen       8885;
        server_name  127.0.0.1,172.16.15.124;
        location / {
            root   html;
            index  index.html index.htm;
        }

		location /iserver {
            proxy_pass   http://172.16.15.124:8090;
            proxy_redirect off;
			proxy_buffering off;
			proxy_set_header Host $host:$server_port;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        }

三、前端对接

1.Leaflet使用subdomains参数,url中加入{s}占位符

教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤

代码如下:

var map= "";
    map = L.map('map', {
        crs: L.CRS.EPSG4326,
        center: [0, 0],
        maxZoom: 18,
        zoom: 1
    });
    L.supermap.tiledMapLayer("http://127.0.0.1:{s}/iserver/services/map-world/rest/maps/World",{subdomains:[8881,8882,8883,8884]}).addTo(map);

2.OpenLayer通过设置url参数{?-?},并通过XYZ方式对接

教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤

代码如下:

var map, url = "http://127.0.0.1:888{1-4}/iserver/services/map-world/rest/maps/World/zxyTileImage.png?z={z}&x={x}&y={y}";
    map = new ol.Map({
        target: 'map',
        controls: ol.control.defaults({attributionOptions: {collapsed: false}})
            .extend([new ol.supermap.control.Logo()]),
        view: new ol.View({
            center: [0, 0],
            zoom: 2,
            projection: 'EPSG:3857',
            multiWorld: true
        })
    });
    var layer = new ol.layer.Tile({
        source: new ol.source.XYZ({
            url: url,
            wrapX: true
        }),
        projection: 'EPSG:3857'
    });
    map.addLayer(layer);
    map.addControl(new ol.supermap.control.ScaleLine());

3.Classic直接传递url数组

教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤

代码如下:

var map, layer,
        host = window.isLocal ? window.server : "https://iserver.supermap.io",
        url = host + "/iserver/services/map-world/rest/maps/World";
    //初始化地图
    map = new SuperMap.Map("map", {
        controls: [
            new SuperMap.Control.Navigation(),
            new SuperMap.Control.Zoom()]
    });
    map.addControl(new SuperMap.Control.MousePosition());
    //初始化图层
    layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", ["http://127.0.0.1:8881/iserver/services/map-world/rest/maps/World","http://127.0.0.1:8882/iserver/services/map-world/rest/maps/World","http://127.0.0.1:8883/iserver/services/map-world/rest/maps/World"], null, {maxResolution: "auto"});
    //监听图层信息加载完成事件
    layer.events.on({"layerInitialized": addLayer});
    function addLayer() {
        map.addLayer(layer);
        //显示地图范围
        map.setCenter(new SuperMap.LonLat(0, 0), 0);

4.MapboxGL直接传递tiles参数

教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤

代码如下:

var host = window.isLocal ? window.server : 'https://iserver.supermap.io';
            var map = new mapboxgl.Map({
                container: 'map', // container id
                style: {
                    version: 8,
                    sources: {
                        'raster-tiles': {
                            type: 'raster',
                            tileSize: 256,
                            tiles: ["http://127.0.0.1:8881/iserver/services/map-world/rest/maps/World","http://127.0.0.1:8882/iserver/services/map-world/rest/maps/World","http://127.0.0.1:8883/iserver/services/map-world/rest/maps/World"],
                            rasterSource: 'iserver'
                        }
                    },

                    layers: [
                        {
                            id: 'simple-tiles',
                            type: 'raster',
                            source: 'raster-tiles',
                            minzoom: 0,
                            maxzoom: 22
                        }
                    ]
                },
                crs: 'EPSG:4326', // 或者 mapboxgl.CRS.EPSG4326  或者 new mapboxgl.CRS('EPSG:4326',[-180,-90,180,90]);
                center: [0, 0],
                zoom: 2
            });

到此这篇关于利用 Nginx 服务搭建子域环境提升二维地图加载性能的文章就介绍到这了,更多相关Nginx 服务内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
Nginx实现反向代理
Sep 20 Servers
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
Mar 09 Servers
nginx限制并发连接请求数的方法
Apr 01 Servers
nginx服务器的下载安装与使用详解
Aug 02 Servers
配置Kubernetes外网访问集群
Mar 31 Servers
idea下配置tomcat避坑详解
Apr 12 Servers
Tomcat项目启动失败的原因和解决办法
Apr 20 Servers
Vscode中SSH插件如何远程连接Linux
May 02 Servers
ubuntu下常用apt命令介绍
Jun 05 Servers
使用Apache Camel表达REST服务的方法
Jun 10 Servers
利用Apache Common将java对象池化的问题
Jun 16 Servers
kubernetes集群搭建Zabbix监控平台的详细过程
Jul 07 Servers
Nginx进程调度问题详解
解决使用了nginx获取IP地址都是127.0.0.1 的问题
Sep 25 #Servers
关于nginx 实现jira反向代理的问题
Windows下用Nginx配置https服务器及反向代理的问题
Sep 25 #Servers
nginx安装以及配置的详细过程记录
Sep 15 #Servers
Nginx缓存设置案例详解
Sep 15 #Servers
图文详解Nginx版本平滑升级方案
Sep 15 #Servers
You might like
PHP人民币金额数字转中文大写的函数代码
2013/02/27 PHP
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
php ci 获取表单中多个同名input元素值的代码
2016/03/25 PHP
laravel 操作数据库常用函数的返回值方法
2019/10/11 PHP
EXT中xtype的含义分析
2010/01/07 Javascript
jquery实现居中弹出层代码
2010/08/25 Javascript
jquery插件开发注意事项小结
2013/06/04 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
HTTP 304错误的详细讲解
2013/11/13 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
2014/05/23 Javascript
Javascript获取CSS伪元素属性的实现代码
2014/09/28 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
JS简单获取当前年月日星期的方法示例
2017/02/07 Javascript
vue一步步实现alert功能
2017/07/05 Javascript
一个基于react的图片裁剪组件示例
2018/04/18 Javascript
centos 上快速搭建ghost博客方法分享
2018/05/23 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
Vue 打包体积优化方案小结
2020/05/20 Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
2020/06/17 Javascript
Python中的面向对象编程详解(上)
2015/04/13 Python
Python3使用requests发闪存的方法
2016/05/11 Python
django连接mysql配置方法总结(推荐)
2018/08/18 Python
Python selenium实现断言3种方法解析
2020/09/08 Python
锐步美国官方网站:Reebok美国
2018/01/10 全球购物
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
上课迟到检讨书100字
2014/01/11 职场文书
文艺演出策划方案
2014/06/07 职场文书
销售代理协议书
2014/09/30 职场文书
诉讼授权委托书
2014/10/15 职场文书
2014年医院党建工作总结
2014/12/20 职场文书
员工升职自荐信
2015/03/27 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
2015年学校政教工作总结
2015/07/20 职场文书
体育教师教学随笔
2015/08/15 职场文书
Java8中接口的新特性使用指南
2021/11/01 Java/Android