• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 3年前 (2022-01-23) 19次浏览 已收录 0个评论

一:首先来发布一个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;@WebServicepublic 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     

5本文来源gao!daima.com搞$代!码#网#

搞代gaodaima码

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反响代理web service的soap:address location问题,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:解决nginx反响代理web service的soap:address location问题

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址