解决nginx反向代理webservice的soap:address location问题

摘要:
wsdl结果如下:这里的地址显然是错误的。

原文:https://blog.csdn.net/mn960mn/article/details/50716768

一:首先来发布一个web service

package com.ws.service;

public interface IUserService
{
public String getUserName(String id);
}
package com.ws.service;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

@WebService
public class UserService implements IUserService
{
@WebMethod
public String getUserName(@WebParam(name="id") String id)
{
return "User:" + id;
}
}
package com.ws.service;

import javax.xml.ws.Endpoint;

public class Server
{
public static void main(String[] args)
{
Endpoint.publish("http://0.0.0.0:6633/api/v1/user", new UserService());
System.out.println("ws startup ok on port " + 6633);
}
}

ws的端口为6633
访问地址为:http://192.168.100.95:6633/api/v1/user?wsdl

然后,nginx的配置如下:

upstream webservice {
server 192.168.10.95:6633;
}
server {
listen 6633;
location / {
proxy_pass http://webservice;
}
}

nginx地址为:192.168.2.123
然后访问代理地址:http://192.168.2.123:6633/api/v1/user?wsdl

结果如下

这里的地址明显错误。

解决方法如下

nginx配置改为:

upstream webservice {
server 192.168.100.95:6633;
}
server {
listen 6633;
location / {
proxy_set_header Host $host:$server_port;
proxy_pass http://webservice;
}
}

原因在于如果没有配置
proxy_set_header Host $host:$server_port;
则,nginx反向代理到后台,传的Host http头为
Host=webservice

免责声明:文章转载自《解决nginx反向代理webservice的soap:address location问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇IDEA创建MavenWeb项目慢,问题根除DeWeb第1个通用化模块:登录模块,仅需要修改一个配置文件即可实现登录功能下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

使用postman调用webservice接口

PostMan调用webservice接口,采用post方式,参数使用xml格式。 #实例 1、webservice地址:http://192.168.2.13/psum/UserModuleService.asmx;2、上传方式选择POST方式;3、header中设置:Content-Type:text/xml;charset=utf-84、参数:(xm...

HTML5 WebSocket 权威指南 学习一 (第二章 WebSocket API)

WebSocket 协议两种URL方案   ws 客户端和服务器之间的非加密流量   wss 客户端和服务器之间的加密流量 WebSocket Secure 表示使用传输层安全性(SSL)的WebSocket连接 采用HTTPS安全机制来保证HTTP连接安全 1.WebSocket 的构造函数 var ws = new WebSocket("ws://...

onvif开发实战2--总结框架搭建

完成框架搭建后,编写自己的主函数起onvif服务 编写makefile objs = onvif.o onvif_func.o duration.o soapC.o soapServer.o stdsoap2.oonvif:$(objs)    gcc -o onvif $(objs).PHONY:cleanclean:    #-rm onvif   ...

SpringBoot整合WebService

WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。其实WebService并不是什么神秘的东西,它就是一个可以远程调用的类,或者说是组件,把你本地的功能开放出去共别人调用。具体的说,Web Service可以让你的网站使用其他...

WebSocket实战

前言 互联网发展到现在,早已超越了原始的初衷,人类从来没有像现在这样依赖过他;也正是这种依赖,促进了互联网技术的飞速发展。而终端设备的创新与发展,更加速了互联网的进化; HTTP/1.1规范发布于1999年,同年12月24日,HTML4.01规范发布;尽管已到2012年,但HTML4.01仍是主流;虽然 HTML5的草案已出现了好几个年头,但转正日期,遥...

利用Nginx做反向代理搭建ArcGIS 10.1 for Server集群环境

  搭建GIS Server集群环境时,通常不建议在GIS Server之间设置防火墙;而建议在服务器环境的前端设置反向代理来隐藏服务器环境的真实地址及端口,保险起见可将反向代理放入DMZ区(前后都设置防火墙),增加安全性。   ArcGIS 10.1 for Server做出的架构改进使得我们在搭建GIS服务器集群环境时更加容易和省心;Nginx因其高性...