通常情况下,企业并不会直接开放系统接口给到外网,并且在企业内部同样有SOA或者ESB这样的接口统一管理的工具。

那么,大多数情况下,如果需要与外部系统,如云系统,或者其他企业的系统做接口时采取的方式如下

企业内部业务系统接口<-->SOA/ESB<-->DMZ<-->外部系统

如果外部系统是其他企业的业务系统,可能同样会经过DMZ<-->SOA/ESB<-->业务系统接口的这样一个流程。

一方面,由于数据流转节点较多,需要做好整个流程中所有系统可用性监控;

另一方面,如何打通流程。

打通流程的关键在于DMZ的使用,在我的经验中有两种方式。

方式1:在DMZ上部署应用作为接口代理,此种方式需要一定的开发量,不在此作为赘述。

方式2:在DMZ上部署nginx作为反向代理,降低开发量。

参考:

nginx配置webservice

解决nginx反响代理web service的soap:address location问题

我的配置文件如下

ws.conf

upstream ws{
server ip:port; #此处最好指定内网ip
} server{
listen ;
server_name ws.domain.cn; #此处指定子域名访问
location / {
proxy_set_header Host $host:$server_port; #必配,否则导致Location问题
proxy_pass http://ws;
}
}

执行命令:nginx -s reload重新加载配置文件。

使用nginx作为webservice接口代理的更多相关文章

  1. cxf设置代理访问webservice接口

    由于业务上的需要,需要访问第三方提供的webservice接口,但由于公司做了对外访问的限制,不设置代理是不能外网的,如果使用http设置代理访问外网还是比较容易的,但使用cxf有点不知道从哪里入手. ...

  2. 【经验随笔】Java通过代理访问互联网平台提供的WebService接口的一种方法

    背景 通常有两点原因需要通过代理访问互联网平台的提供的WebService接口: 1. 在公司企业内网访问外部互联网平台发布的接口,公司要求通过代理访问外网. 2. 频繁访问平台接口,IP被平台封了, ...

  3. 【工作手札】Nginx接口代理可跨域

    接口代理nginx配置 location /api/ { proxy_set_header Host api.shenjian.io; proxy_set_header X-Forwarded-For ...

  4. Nginx配置WebService、MySQL、SQL Server、ORACLE等代理

    首先介绍一下Nginx的基本使用: 注意不要直接双击nginx.exe,这样会导致修改配置后重启.停止nginx无效,需要手动关闭任务管理器内的所有nginx进程 在nginx.exe目录,打开命令行 ...

  5. Nginx 前端项目配置 包含二级目录和接口代理

    Nginx是目前用的比较多的一个前端服务器 其优点是配置简单修改一下server就能用 并发性能比较好,具体怎么好就看这个吧 开撸 1.找到nginx (liunx系统,已安装) whereis ng ...

  6. java调用CXF WebService接口的两种方式

    通过http://localhost:7002/card/services/HelloWorld?wsdl访问到xml如下,说明接口写对了. 2.静态调用 // 创建WebService客户端代理工厂 ...

  7. webservice接口的发布

    使用xfire-client发布webservice接口: commons-codec-1.3.jar commons-httpclient-3.0.jar 在src 下创建META-INF/xfir ...

  8. Webservice接口的调用

    一.开发webservice接口的方式 1.jdk开发. 2.使用第三方工具开发,如cxf.shiro等等. 我这边介绍jdk方式webservice接口调用. 二.使用jdk调用webservice ...

  9. 通过Java WebService接口从服务端下载文件

    一. 前言 本文讲述如何通过webservice接口,从服务端下载文件.报告到客户端.适用于跨系统间的文件交互,传输文件不大的情况(控制在几百M以内).对于这种情况搭建一个FTP环境,增加了系统部署的 ...

随机推荐

  1. python框架之Django(7)-Cookie&Session使用

    Cookie 添加 response.set_cookie 添加明文cookie response.set_cookie(key, value='', max_age=None, expires=No ...

  2. Numpy float64和Python float是一样的

    >>> numpy.float64(5.9975).hex() # 函数用于将10进制整数转换成16进制,以字符串形式表示. '0x1.7fd70a3d70a3dp+2' >& ...

  3. 后台管理界面admin

    admin组件:展示数据表,快速的录入数据. 为了安全,可以在路由分发时修改下admin的名字.(一定要改) 1.不想使用英文,则在app里的settings修改一下(在最下面的位置) LANGUAG ...

  4. mysql----------mysql5.7如何配置主从数据库

    主库: 1.配置文件里面加入以下两行 server-id=1 log-bin=MySQL-bin 2.创建账户 grant replication client,replication slave o ...

  5. Linux文件检索

    title: Linux文件检索 date: 2017-12-11 19:03:01 tags: linux categories: linux whereis 只要执行 whereis ls 就可以 ...

  6. codeforces 982A Row

    题意: 一个01串是否合法满足以下两个要求: 1.没有两个相邻的1: 2.在满足第一个条件的情况下,不能再放下更多的1. 判断一个给定的串是否合法. 思路: 最近cf的A怎么都这么坑啊... 首先是判 ...

  7. python split()函数的用法

    转自: https://blog.csdn.net/orangefly0214/article/details/80810449 函数:split() Python中有split()和os.path. ...

  8. 艾妮记账本Web开发(开发版)

    因为没有办法制作微信小程序版的艾妮记账本所以只能选择做Web开发版,但因为是花时间赶出来到的(但用了我已学的所有Web知识)所以就没有办法按老师的要求写七天的制作过程. 其实真正说起来我的这个Web开 ...

  9. 修复svn hook导致的字符集错误

    修改pre-commit钩子,如果返回中文信息,可能会报如下错误: Error output could not be translated from the native locale to UTF ...

  10. oracel数据库主键自增

    -- Create sequence create sequence FILE_ID_SEQ   主键名(自增列) minvalue 1         起始 maxvalue 99999     最 ...