使用nginx作为webservice接口代理

Posted 黄洪波写点东西的地方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用nginx作为webservice接口代理相关的知识,希望对你有一定的参考价值。

通常情况下,企业并不会直接开放系统接口给到外网,并且在企业内部同样有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 80;
        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接口

NGINX代理返回代码499问题分析与处理

.net 里就给了一个webservice接口怎么用

《nginx》二nginx反向代理

《nginx》二nginx反向代理

《nginx》二nginx反向代理