教你利用Nginx 服務(wù)搭建子域環(huán)境提升二維地圖加載性能的步驟
一、背景
最近有小伙伴遇到了大數(shù)據(jù)量地圖加載慢的情況,觀察iServer性能并未發(fā)揮到極致,所以通過(guò)搭建子域的方式成功實(shí)現(xiàn)了瀏覽速度的提升。
子域能對(duì)加載速度進(jìn)行提升是因?yàn)闉g覽器對(duì)同一個(gè)域名服務(wù)的并發(fā)請(qǐng)求數(shù)量有限制,通過(guò) Nginx 服務(wù)部署多個(gè)子域名,加大向 iServer 發(fā)送數(shù)據(jù)請(qǐng)求的并發(fā)量,從而達(dá)到提升加載速度的目的。
二、Nginx配置步驟
1.修改Nginx 配置nginx.conf,監(jiān)控多個(gè)端口
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; }
三、前端對(duì)接
1.Leaflet使用subdomains參數(shù),url中加入{s}占位符
代碼如下:
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通過(guò)設(shè)置url參數(shù){?-?},并通過(guò)XYZ方式對(duì)接
代碼如下:
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數(shù)組
代碼如下:
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"}); //監(jiān)聽(tīng)圖層信息加載完成事件 layer.events.on({"layerInitialized": addLayer}); function addLayer() { map.addLayer(layer); //顯示地圖范圍 map.setCenter(new SuperMap.LonLat(0, 0), 0);
4.MapboxGL直接傳遞tiles參數(shù)
代碼如下:
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 });
到此這篇關(guān)于利用 Nginx 服務(wù)搭建子域環(huán)境提升二維地圖加載性能的文章就介紹到這了,更多相關(guān)Nginx 服務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
通過(guò)nginx代理攔截請(qǐng)求進(jìn)行全局訪問(wèn)限制
這篇文章主要介紹了通過(guò)nginx代理攔截請(qǐng)求進(jìn)行全局訪問(wèn)限制,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Nginx使用反向代理實(shí)現(xiàn)負(fù)載均衡過(guò)程解析
這篇文章主要介紹了Nginx使用反向代理實(shí)現(xiàn)負(fù)載均衡過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09蘋果M1芯片安裝nginx 并且部署vue項(xiàng)目步驟詳解
在本篇文章里小編給大家整理了一篇關(guān)于蘋果M1芯片安裝nginx 并且部署vue項(xiàng)目步驟詳解內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)參考下。2021-11-11Logrotate如何實(shí)現(xiàn)每小時(shí)切割日志文件
這篇文章主要介紹了Logrotate如何實(shí)現(xiàn)每小時(shí)切割日志文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05Nginx服務(wù)器中強(qiáng)制使用緩存的配置及緩存優(yōu)先級(jí)的講解
這篇文章主要介紹了Nginx服務(wù)器中強(qiáng)制使用緩存的配置及緩存優(yōu)先級(jí)的講解,一定程度上可以幫助大家解決Nginx不緩存或緩存失效的問(wèn)題,需要的朋友可以參考下2016-01-01Nginx 禁止訪問(wèn)某個(gè)目錄或文件的設(shè)置方法
如果基于WEB根目錄下,要禁止用戶訪問(wèn)/config目錄,或者要禁止用戶訪問(wèn)/config.ini(ZF常用INI,不過(guò)建議還是放到WEB目錄以外的地方),可以通過(guò)location進(jìn)行配置,返回403或者404等2010-09-09nginx通過(guò)nginx_upstream_check_module實(shí)現(xiàn)后端健康檢查
nginx的健康檢查有兩種,一種是被動(dòng)健康檢查,也就是nginx自帶健康檢查模塊ngx_http_upstream_module,另一種就是主動(dòng)健康檢查,使用第三方模塊nginx_upstream_check_module,下面就來(lái)介紹一下,感興趣的可以了解一下2024-08-08Nginx禁止IP訪問(wèn)只允許域名訪問(wèn)及防盜鏈設(shè)置
我們?cè)谑褂玫臅r(shí)候會(huì)遇到很多的惡意IP攻擊,這個(gè)時(shí)候就要用到Nginx 禁止IP訪問(wèn)了,本文主要介紹了Nginx禁止IP訪問(wèn)只允許域名訪問(wèn)及Nginx防盜鏈設(shè)置,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10