使用nginx作为webservice接口代理
通常情况下,企业并不会直接开放系统接口给到外网,并且在企业内部同样有SOA或者ESB这样的接口统一管理的工具。
那么,大多数情况下,如果需要与外部系统,如云系统,或者其他企业的系统做接口时采取的方式如下
企业内部业务系统接口<-->SOA/ESB<-->DMZ<-->外部系统
如果外部系统是其他企业的业务系统,可能同样会经过DMZ<-->SOA/ESB<-->业务系统接口的这样一个流程。
一方面,由于数据流转节点较多,需要做好整个流程中所有系统可用性监控;
另一方面,如何打通流程。
打通流程的关键在于DMZ的使用,在我的经验中有两种方式。
方式1:在DMZ上部署应用作为接口代理,此种方式需要一定的开发量,不在此作为赘述。
方式2:在DMZ上部署nginx作为反向代理,降低开发量。
参考:
解决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接口代理的更多相关文章
- cxf设置代理访问webservice接口
由于业务上的需要,需要访问第三方提供的webservice接口,但由于公司做了对外访问的限制,不设置代理是不能外网的,如果使用http设置代理访问外网还是比较容易的,但使用cxf有点不知道从哪里入手. ...
- 【经验随笔】Java通过代理访问互联网平台提供的WebService接口的一种方法
背景 通常有两点原因需要通过代理访问互联网平台的提供的WebService接口: 1. 在公司企业内网访问外部互联网平台发布的接口,公司要求通过代理访问外网. 2. 频繁访问平台接口,IP被平台封了, ...
- 【工作手札】Nginx接口代理可跨域
接口代理nginx配置 location /api/ { proxy_set_header Host api.shenjian.io; proxy_set_header X-Forwarded-For ...
- Nginx配置WebService、MySQL、SQL Server、ORACLE等代理
首先介绍一下Nginx的基本使用: 注意不要直接双击nginx.exe,这样会导致修改配置后重启.停止nginx无效,需要手动关闭任务管理器内的所有nginx进程 在nginx.exe目录,打开命令行 ...
- Nginx 前端项目配置 包含二级目录和接口代理
Nginx是目前用的比较多的一个前端服务器 其优点是配置简单修改一下server就能用 并发性能比较好,具体怎么好就看这个吧 开撸 1.找到nginx (liunx系统,已安装) whereis ng ...
- java调用CXF WebService接口的两种方式
通过http://localhost:7002/card/services/HelloWorld?wsdl访问到xml如下,说明接口写对了. 2.静态调用 // 创建WebService客户端代理工厂 ...
- webservice接口的发布
使用xfire-client发布webservice接口: commons-codec-1.3.jar commons-httpclient-3.0.jar 在src 下创建META-INF/xfir ...
- Webservice接口的调用
一.开发webservice接口的方式 1.jdk开发. 2.使用第三方工具开发,如cxf.shiro等等. 我这边介绍jdk方式webservice接口调用. 二.使用jdk调用webservice ...
- 通过Java WebService接口从服务端下载文件
一. 前言 本文讲述如何通过webservice接口,从服务端下载文件.报告到客户端.适用于跨系统间的文件交互,传输文件不大的情况(控制在几百M以内).对于这种情况搭建一个FTP环境,增加了系统部署的 ...
随机推荐
- python类型错误:'NoneType' object is not subscriptable
TypeError: 'NoneType' object is not subscriptable --> 原因:变量使用了系统内置的关键字list 解决:重新定义下这个变量
- Golang--不定参数类型
1.不定参数类型 不定参数是指函数传入的参数个数为不定数量. package main import ( "fmt" ) //不定参数函数 func Add(a int, args ...
- data日期转化
eg: var time="2018-05-19T08:04:52.000+0000"; var d = new Date(time); var times=d.getF ...
- VC++运行库 集32位/64位整合版
运行程序时,win7/win10(x86和x64)常会遇到缺少什么缺少msvc***.dll问题 安装下面链接提供的程序,安装后,便可解决. [2016-10-10]Microsoft Visual ...
- Go 初体验 - 令人惊叹的语法 - defer.3 - defer 函数参数计算时机
defer 函数的参数计算时机 定义一个 defer 函数,接收参数 n: 调用: 输出: 有点惊讶,为什么不是 100 200 200? go 语言里,defer 函数的参数是在定义位置被计算的,也 ...
- haier周的计算原则
现使用oracle的sql表示出haier周, 经过对其生成结果的分析,发现海尔周是以周日到周六分别作为一周的始末, 用到的oracle sql中会涉及到calendar week的定义,还涉及到了I ...
- [Android] macOS的Android Studio快捷键
- 快速输入serialVersionUID - - 设置,左上角,Android Studio -> Preferences -> 搜索“Serializable class witho ...
- IRC 打字交流
kali 里面用 apt-get install weechat 安装完成后,输入 weechat 命令就能启动客户端了 要想使用 IRC,就需要先连接一个 irc 服务器,选择了大名鼎鼎的 chat ...
- 在vue项目中 如何定义全局变量 全局函数
如题,在项目中,经常有些函数和变量是需要复用,比如说网站服务器地址,从后台拿到的:用户的登录token,用户的地址信息等,这时候就需要设置一波全局变量和全局函数 定义全局变量 原理: 设置一个专用的的 ...
- php 把一个数组分成几个数组
<?php /* * * 把一个数组分成几个数组 * $arr 数组 * $num 获取的数量 * */ function sliceArr($arr, $num) { //数组的个数 $lis ...