代理 SOAP 服务器

代理 SOAP 服务器

我需要在不同于标准 443 的端口上与 httpS SOAP 服务器进行通信。由于限制,客户端应用程序无法使用不同于 HTTP 和 HTTPS 标准端口的端口

我如何设置运行 Apache 的 Linux 服务器,以便将来自 soap.domain.com 的所有请求都隧道传输到https://soapserver.otherdomain.com:1234/Service.asmx

答案1

反向代理将会帮助你。

您可以使用 apache mod_proxy 来帮助您。通过使用 mod_proxy,apache 将在标准 HTTP/HTTPS 端口上接收请求,然后在内部将其重定向到 SOAP 服务器。

http://httpd.apache.org/docs/2.0/mod/mod_proxy.html

阅读有关反向代理的内容。这将帮助您更好地理解。

答案2

我会使用反向代理,例如哈普罗西或者nginxproxy_pass选项。

两者都允许您将请求代理到上游服务器,并且两者都允许 HTTPS 到 soap.domain.com,并允许代理到加密的 HTTPS 上游服务器(在您的情况下):https://soapserver.otherdomain.com:1234/Service.asmx

根据我的经验,nginx 的设置和配置比较容易。

适当的 nginx 配置可能类似于以下内容:

listen       443 ssl;
server_name  soap.domain.com;
ssl_certificate     soap.domain.com.crt;
ssl_certificate_key soap.domain.com.key;
ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers         HIGH:!aNULL:!MD5;

location / {
    proxy_pass https://soapserver.otherdomain.com:1234;                     
}

是的,你可以使用自签名证书

答案3

我不清楚你需要在哪里做这件事 - 在 SOAP 客户端?在 SOAP 服务器上?还是在两者之间?无论如何,方法都是一样的 - 有多种方法可以做到这一点。

  • 您可以使用 iptables 重写数据包地址。
  • 运行数据包代理守护程序(例如 netcat)以监听端口 443 并连接到端口 XXX
  • 配置 [x]inetd 监听 443 端口,并运行通用套接字客户端(例如 netcat)连接到 XXX 端口

第一种方法允许您保留服务器看到的客户端地址。

相关内容