通达OA 免狗迁移到公网 的另类解决办法
1,通达OA 发布到公网 ,要真正的 Anywhere
2,正版通达OA,有加密狗在本地机器上 ,通达必须检测有狗才可以运行
3,阿里云服务器 (你想往上插加密狗都没地方的说..汗)
4,本地ISP 不提供静态IP(动态IP也没有,就没给公网ip) 花生壳类的也不能用。
此为背景
咨询通达官方能得到的唯一答案就是“不行”,或者他们建议你购置一台机器插上加密狗, 托管在本地机房 。
这种解决方案着实不敢恭维,说句难听的话 人用盗版的不存在这个问题好不好,用正版想放公网 ,还要增加如此多成本。
看到这,使用盗版的朋友可以不用往下看了,盗版没狗 没这问题 ⊙﹏⊙b汗
苦思多日,也是凑巧近期经常用到的俩个东西 VPN 、Nginx,这俩东西组合正好解决了上面问题。
方案如下:
1, 阿里云(win2003)上搭建VPN :管理工具-》路由和远程访问->配置 自定义只选中vpn-》完成
配置静态ip范围 192.168.10.1-192.168.10.255 注意别和本地的ip段冲突即可
2,阿里云上 用户管理创建 vpn登陆用户 ,创建好后,右键属性 拨入选项卡-》勾选允许访问和分配静
态ip 输入IP 如: 192.168.10.200
3,本地OA服务器上创建VPN连接,用户名和密码为上一步创建的win用户,连接成功后,在阿里云上访问
http://192.168.10.200 确认能访问oa
4,阿里云上下载phpsys ,配置nginx下nginx.conf server段修改为:
- server {
- #如开着IIS占用80就用非80端口
- listen 90;
- server_name oa.xx.com;
- location / {
- proxy_pass http://192.168.10.200/;
- index index.php index.html index.htm;
- proxy_buffer_size 64k;
- proxy_buffers 32 32k;
- proxy_busy_buffers_size 128k;
- }
- location ~.*\.(gif|jpg|jpeg|png|bmp|swf|js|html|htm|css)$ { #指定缓存文件类型
- proxy_pass http://192.168.10.100;
- index index.php index.html index.htm;
- expires 7d; #设置浏览器过期时间
- root cache; #所有的缓存文件都会保存在这里html等等
- proxy_store on; #开启缓存机制
- proxy_set_header Accept-Encoding '';
- proxy_store_access user:rw group:rw all:rw; #缓存读写规则
- proxy_temp_path cache_b; #存放静态文件的缓存目录
- }
- }
5,重启 Nginx ,打开网址 http://oa.xx.com:90 看看吧,已经成功了
6,为防止本地Vpn因网络不稳定等因素断开不能重播,可以使用下面的Vpn守护脚本:
- @echo off
- set MyConnection=Vpn连接名称
- set MyUsername=vpn账号
- set MyPassword=Vpn密码
- ::192.168.10.1 替换为你阿里云上获取的Vpn ip地址
- ping 192.168.10.1 -n 1
- if %ERRORLEVEL% neq 0 (
- Rasdial %MyConnection% %MyUsername% %MyPassword%
- echo 已经连接:%MyConnection%
- echo 重拨vpn成功 %date% %time% >>VpnLog.txt
- ) else (
- echo %MyConnection% 正常连接!
- )
保存为 vpn.bat,将此脚本添加到windows计划任务,每10分钟执行一次。
Over, 完美运行。