nginx實(shí)現(xiàn)多geoserver服務(wù)的負(fù)載均衡的示例代碼
概述
為了提高服務(wù)的訪問(wèn)速度,減輕geoserver服務(wù)的壓力,同時(shí)避免服務(wù)節(jié)點(diǎn)出現(xiàn)問(wèn)題而影響服務(wù)訪問(wèn)的穩(wěn)定性,我們通常會(huì)通過(guò)部署多個(gè)geoserver來(lái)解決,但是部署了多個(gè)geoserver后,我們需要一個(gè)統(tǒng)一的接口提供出來(lái)供使用,nginx很好地可以這樣的需求,本文講講如何通過(guò)nginx實(shí)現(xiàn)多geoserver服務(wù)的負(fù)載均衡。
實(shí)現(xiàn)效果
實(shí)現(xiàn)
1. 多geoserver部署
為了保持geoserver的服務(wù)一致,我們先配置好一個(gè)geoserver服務(wù),配置好之后將部署的Tomcat復(fù)制,克隆多個(gè)出來(lái),本文為演示復(fù)制了兩個(gè)(共三個(gè)geoserver),修改Tomcat的端口,使三個(gè)端口不沖突,復(fù)制好之后分別啟動(dòng)三個(gè)Tomcat。
2. nginx配置
修改nginx.conf文件,配置信息如下:
#user ?nobody; worker_processes ?1; #error_log ?logs/error.log; #error_log ?logs/error.log ?notice; #error_log ?logs/error.log ?info; #pid ? ? ? ?logs/nginx.pid; events { ? ? worker_connections ?1024; } http { ? ? include ? ? ? mime.types; ? ? default_type ?application/octet-stream; ? ? #log_format ?main ?'$remote_addr - $remote_user [$time_local] "$request" ' ? ? # ? ? ? ? ? ? ? ? ?'$status $body_bytes_sent "$http_referer" ' ? ? # ? ? ? ? ? ? ? ? ?'"$http_user_agent" "$http_x_forwarded_for"'; ? ? #access_log ?logs/access.log ?main; ? ? sendfile ? ? ? ?on; ? ? #tcp_nopush ? ? on; ? ? #keepalive_timeout ?0; ? ? keepalive_timeout ?65; ? ? #gzip ?on; ?? ? ?? ?# 反向代理配置 ?? ?upstream server_list{ ?? ? ? # 這個(gè)是tomcat的訪問(wèn)路徑 ?? ? ? server localhost:8081; ?? ? ? server localhost:8082; ?? ? ? server localhost:8083; ?? ?} ? ? server { ?? ??? ?listen ? ? ? 80; ?? ? ? ?server_name ?localhost; ?? ?? ?? ??? ?location / { ?? ??? ??? ?add_header 'Access-Control-Allow-Origin' $http_origin; ?? ??? ??? ?add_header 'Access-Control-Allow-Credentials' 'true'; ?? ??? ??? ?add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; ?? ??? ??? ?add_header 'Access-Control-Allow-Headers' 'DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range'; ?? ??? ??? ?add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range'; ?? ??? ??? ?if ($request_method = 'OPTIONS') { ?? ??? ??? ??? ?add_header 'Access-Control-Max-Age' 1728000; ?? ??? ??? ??? ?add_header 'Content-Type' 'text/plain; charset=utf-8'; ?? ??? ??? ??? ?add_header 'Content-Length' 0; ?? ??? ??? ??? ?return 204; ?? ??? ??? ?} ?? ??? ??? ?root ? html; ?? ??? ??? ?proxy_pass http://server_list; ?? ? ? ? ? ?index ?index.html index.htm; ?? ??? ?} ?? ??? ? ?? ??? ?error_page ? 500 502 503 504 ?/50x.html; ?? ??? ?location = /50x.html { ?? ??? ??? ?root ? html; ?? ??? ?} ?? ?} }
配置好nginx后,啟動(dòng)nginx。
3. 前端調(diào)用
根據(jù)上述的配置,nginx的端口為80,因此geoserver的地址為http://localhost/geoserver,在ol中的調(diào)用代碼如下:
<!doctype html> <html lang="en"> <head> ? <meta charset="UTF-8"> ? <title>OpenLayers map preview</title> ? <link rel="stylesheet" href="lib/ol/ol.css" rel="external nofollow" type="text/css"> ? <link rel="stylesheet" href="css/common.css" rel="external nofollow" > ? <script src="../ol5/ol.js" type="text/javascript"></script> </head> <body> <div id="map" class="map"></div> <script> ? const options = { ? ? center: [52102781.07568731, 4456849.777083951], ? ? zoom: 3, ? ? minZoom: 0, ? ? maxZoom: 18 ? } ? const base = new ol.layer.Tile({ ? ? visible: true, ? ? source: new ol.source.OSM() ? }); ? const wms = new ol.layer.Tile({ ? ? source: new ol.source.TileWMS({ ? ? ? url: 'http://localhost/geoserver/mapbox/wms', ? ? ? params: {'LAYERS': 'mapbox:city', 'TILED': true}, ? ? ? serverType: 'geoserver', ? ? ? transition: 0 ? ? }) ? }) ? window.map = new ol.Map({ ? ? controls: ol.control.defaults({ ? ? ? attribution: false ? ? }).extend([new ol.control.ScaleLine()]), ? ? target: 'map', ? ? layers: [base, wms], ? ? view: new ol.View({ ? ? ? center: options.center, ? ? ? zoom: options.zoom, ? ? ? minZoom: options.minZoom, ? ? ? maxZoom: options.maxZoom ? ? }) ? }); </script> </body> </html>
到此這篇關(guān)于nginx實(shí)現(xiàn)多geoserver服務(wù)的負(fù)載均衡的示例代碼的文章就介紹到這了,更多相關(guān)nginx 多geoserver負(fù)載均衡內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- nginx 作為反向代理實(shí)現(xiàn)負(fù)載均衡的例子
- Nginx負(fù)載均衡的4種方案配置實(shí)例
- Nginx+Windows負(fù)載均衡配置方法
- Nginx 安裝筆記(含PHP支持、虛擬主機(jī)、反向代理負(fù)載均衡)
- Nginx做NodeJS應(yīng)用負(fù)載均衡配置實(shí)例
- nginx負(fù)載均衡配置,宕機(jī)自動(dòng)切換方式
- 使用nginx來(lái)負(fù)載均衡 本文在window與linux下配置nginx實(shí)現(xiàn)負(fù)載
- Nginx geoip模塊實(shí)現(xiàn)地區(qū)性負(fù)載均衡
- nginx 負(fù)載均衡 多站點(diǎn)共享Session
相關(guān)文章
nginx實(shí)現(xiàn)動(dòng)靜分離的示例代碼
這篇文章主要介紹了nginx實(shí)現(xiàn)動(dòng)靜分離的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Nginx listen 監(jiān)聽(tīng)端口的實(shí)現(xiàn)配置
本文將介紹Nginx的listen指令及其在配置文件中的應(yīng)用,通過(guò)了解listen指令,我們可以知道Nginx如何監(jiān)聽(tīng)端口,并配置相應(yīng)的服務(wù)器塊來(lái)處理進(jìn)入的請(qǐng)求2023-12-12Nginx服務(wù)器作反向代理實(shí)現(xiàn)內(nèi)部局域網(wǎng)的url轉(zhuǎn)發(fā)配置
這篇文章主要介紹了Nginx服務(wù)器作反向代理實(shí)現(xiàn)內(nèi)部局域網(wǎng)的url轉(zhuǎn)發(fā)實(shí)例,文中提到需要注意proxy_read_timeout參數(shù)的相關(guān)調(diào)整,需要的朋友可以參考下2016-01-01centos7系統(tǒng)下nginx安裝并配置開(kāi)機(jī)自啟動(dòng)操作
這篇文章主要介紹了centos7系統(tǒng)下nginx安裝并配置開(kāi)機(jī)自啟動(dòng)操作方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02Nginx報(bào)錯(cuò)104:Connection?reset?by?peer問(wèn)題的解決及分析
最近恰好又遇到這了個(gè)錯(cuò)誤,為了加深記憶,所以記錄下我遇到這個(gè)錯(cuò)誤的主要原因,下面這篇文章主要給大家介紹了關(guān)于Nginx報(bào)錯(cuò)104:Connection?reset?by?peer問(wèn)題的解決及分析的相關(guān)資料,需要的朋友可以參考下2022-07-07Nginx的安裝和多域名配置的實(shí)現(xiàn)方法
這篇文章主要介紹了Nginx的安裝和多域名配置的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09nginx出現(xiàn)權(quán)限問(wèn)題解決(13: Permission denied)
本文主要介紹了nginx出現(xiàn)權(quán)限問(wèn)題解決(13: Permission denied),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06