Untuk meningkatkan kelajuan akses perkhidmatan, mengurangkan tekanan pada perkhidmatan geoserver dan mengelakkan masalah dengan nod perkhidmatan yang menjejaskan kestabilan akses perkhidmatan, kami biasanya menyelesaikan masalah dengan menggunakan berbilang pelayan geo, tetapi menggunakan Selepas memasang berbilang pelayan geo, kami memerlukan antara muka yang disatukan untuk kegunaan nginx boleh memenuhi keperluan sedemikian dengan baik.
Untuk memastikan perkhidmatan geoserver konsisten. , kami mula-mula Mengkonfigurasi perkhidmatan geoserver Selepas mengkonfigurasi, menyalin Tomcat yang digunakan dan mengklon berbilang yang Artikel ini menyalin dua (tiga geoserver secara keseluruhan) untuk demonstrasi supaya ketiga-tiga port tidak bercanggah Mulakan tiga Tomcats.
Ubah suai fail nginx.conf, maklumat konfigurasi adalah seperti berikut:
#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{ # 这个是tomcat的访问路径 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; } } }
Selepas nginx dikonfigurasikan, mulakan nginx.
Mengikut konfigurasi di atas, port nginx ialah 80, jadi alamat geoserver ialah http://localhost/geoserver adalah seperti berikut:
<!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>
Atas ialah kandungan terperinci Bagaimana nginx melaksanakan pengimbangan beban berbilang perkhidmatan geoserver. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!