金蝶云星空产品作为一款云产品,很多客户都希望在公司外部也能方便的使用,这里分享几种在外网访问的思路。
一、直接端口映射
方案要求
网络出口有固定公网IP地址、网关设备支持端口映射、端口映射时内外网端口必须一致。
简要步骤
1、在服务器上打开【控制面板】-【管理工具】-【IIS管理器】,找到“default web site”,右键选择【编辑绑定】,添加绑定需要的端口。
2、Windows防火墙放行刚添加的端口,如果还有其他硬件防火墙,均需要放行端口。
3、IT人员进入路由器或其他网关设备,将新增的端口映射的外网相同的端口上。
4、设置完毕后,使用浏览器访问http://公网IP:端口/k3cloud,如:http://1.2.3.5:9010/k3cloud,应能打开。
补充说明
1、如果希望访问地址不需要输入端口号,则需要映射80端口。
2、如果映射80端口,需要注意国内互联网使用80端口要求备案,具体可咨询运营商,没备案前无法使用。
二、使用反向代理
1、方案一配置时,内外网需要端口一致,否则会出现异常问题。
2、如果内外网端口无法一致可以考虑使用Nginx反向代理实现。
3、使用Nginx反向代理还可以简便的实现外网使用https内网使用http访问。
4、金蝶云星空需要7.5.1.202010版本。
5、使用Nginx需要把Nginx监听的端口映射到外网(请使用Linux平台部署Nginx)。
简要步骤
1、Nginx服务器推荐使用Linux环境,具体由企业IT人员部署配置,Nginx的server配置可以参考以下配置:
# **********************HTTP反向代理参考*********************************
server {
listen 80;
proxy_hide_header X-Powered-By;
proxy_hide_header X-AspNet-Version;
location / {
proxy_pass http://192.168.1.100:80; # 填写实际的星空服务器地址
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
# **********************HTTPS反向代理参考********************************
server {
listen 443 ssl http2;
server_name *.test.cn;
ssl_certificate "/etc/nginx/ssl/test.cn.cer";
ssl_certificate_key "/etc/nginx/ssl/test.cn.key";
ssl_stapling on;
ssl_stapling_verify on;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:1m;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!RSA:!MD5;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=63072000" always;
proxy_hide_header X-Powered-By;
proxy_hide_header X-AspNet-Version;
location / {
proxy_pass http://192.168.1.100:80; # 填写实际的星空服务器地址
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
2、星空配置调整。打开"C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\App_Data\Common.config",
在<appSettings>至</appSettings>之间增加如下配置:
<add key="ForwardLoginUrl" value="{X-Forwarded-Proto}://{Forward-x-RequestHost}:{X-Forwarded-Port}" />
3、重启IIS。
4、尝试使用Nginx监听的端口访问。