我是靠谱客的博主 时尚航空,最近开发中收集的这篇文章主要介绍nginx代理ArcGIS服务需求分析:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

nginx代理服务

  • 需求分析:
    • 1、安全证书签发
    • 2、http转https
    • 3、ip跳转域名访问(重定向)
    • 4、最终配置
    • 声明

需求分析:

1)微信小程序,使用arcgis api 地图。发布正式版有安全证书的问题,需要采用安全域名访问,http请求和ip访问方式,以及没有安全证书的https将会拦截,正式版无法访问;
2)arcgis server 服务请求,不能跳转到域名上进行访问

1、安全证书签发

https:安全证书(微信小程序证书请自行申请)
pfx证书转nginx识别证书:
生成crt证书:(证书公钥)

openssl pkcs12 -in 4395521_www.wmgis.com.pfx -clcerts -nokeys -out ./arcserver.crt  -password pass:jP06I383

rsa算法生成密钥 (证书私钥)

openssl pkcs12 -in 4395521_www.wmgis.com.pfx -nocerts -nodes -out ./arcserver.rsa  -password pass:jP06I383

2、http转https

微信小程序需采用https方式进行访问:

        # 定位地址 http转https
        location / {
            proxy_pass    http://192.168.1.128:6080/;
        }

3、ip跳转域名访问(重定向)

服务地址已配置成域名访问的方式,在实际进行地图服务访问的时候ArcGIS Server依旧采用IP进行访问地图, 如下图:
ArcGIS 服务直接访问IP:
在这里插入图片描述
https://10.68.11.80:8081/arcgis/rest/services/XXX/MapServer/export?bbox=…
问题
1)微信小程序:不能使用ip进行访问,(该地址为IP地址,请使用域名进行访问
解决方法:

        #arcgis服务 重定向 (IP访问转域名访问)
        location /arcgis/rest/services/ {
    	    if ( $host != 'www.wmgis.com' ){
                rewrite ^/(.*) https://www.wmgis.com:8081/$1 permanent;
            }
            proxy_pass    http://192.168.1.128:6080/arcgis/rest/services/;
        }

2)nginx 重定向次数过多

原因解析
rewrite地址:www.wmgis.com和 server_name设置的域名重复,会出现多次循环重复的现象;

解决方案

  • 更该域名
  • 添加if判断(域名有限是使用,效率略低,本文采用次方法)
if ( $host != 'www.wmgis.com' ){
 rewrite ^/(.*) https://www.wmgis.com:8081/$1 permanent;
}

参数解释
$host:请求信息中的"Host",如果请求中没有Host行,则等于设置的服务器名;

第一次host地址为:10.68.11.80 ,经过重定向之后 host为:www.wmgis.com

4、最终配置

server {
        # 监听端口
        listen       8081 ssl;
        # 服务名称
        server_name  www.wmgis.com 10.68.11.80;
        # 安全证书
        ssl_certificate  ../ssl/arcserver.crt;
        ssl_certificate_key  ../ssl/arcserver.rsa;
        
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        # 定位地址 http转https
        location / {
            proxy_pass    http://192.168.1.128:6080/;
        }
        # arcgis api 实际访问地址
        location /arcgis_api/ {
            proxy_pass    http://192.168.1.72:9006/;
        }
        # arcgis服务 重定向 (IP访问转域名访问)
        location /arcgis/rest/services/ {
    	    if ( $host != 'www.wmgis.com' ){
                rewrite ^/(.*) https://www.wmgis.com:8081/$1 permanent;
            }
            proxy_pass    http://192.168.1.128:6080/arcgis/rest/services/;
        }
    }

声明

1)文章来源项目实践,存在任何疑问或问题请留言,感谢您的阅读!
2)转载请标明来源!

最后

以上就是时尚航空为你收集整理的nginx代理ArcGIS服务需求分析:的全部内容,希望文章能够帮你解决nginx代理ArcGIS服务需求分析:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部