• IHS代理遇到404的问题


    因为工作的原因最近使用IBM Http server (IHS)做代理服务器。IHS和Apache相似度很高,有不明白的地方可以查看Apache的相关文档做参考资料。(这里不得不吐槽一下IHS相关资料真的好少!)

    我们的程序访问流程是如下图。我们有一台提供服务的服务器A,IHS作为A的代理服务器接受所有客户端的访问,然后再将访问转给服务器A。服务器A返回信息,IHS将对于的信息返回给客户端。IHS的作用就是左手交右手的操作而已。

    但配置好以下代理的设置后,使用Client发出请求得到404的错误。

    SSLProxyEngine on

    ProxyPreserveHost on

    ProxyPass  /xxx/xxx  https://Server A/xxxx/xxxx 

    ProxyPassReverse  /xxx/xxx  https://Server A/xxxx/xxxx 

    可以确认Service A运行正常,因为使用Postman是可以直接访问Server A提供的API服务获取相关的信息。经过多次实验和翻查资料后,最终定位到ProxyPreserveHost这个设置。应该将ProxyPreserveHost设置为off!!!

    以下是Apache官网配置手册的原话(建议使用英文去理解,中文翻译我看得一头雾水。)

    当IHS作为Service A的代理,ProxyPreserveHost设置为“on”,IHS会将client请求报头(Request header)中Host的值直接放到IHS请求Server A请求报头的Host中。如下图所示:

    由于request header中的Host是用来指示使用服务器A那个服务的,服务器A中根本没有IHS的服务,所以只能返回404了。

    如果ProxyPreserveHost设置为“off”,IHS会使用ProxyPass设置中的hostname值放到请求Server A请求报文头的Host中。如下图所示:

    Host设置了正确的Server A地址,Server A才会正确返回数据。

    参考Apache官网手册地址:http://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypreservehost

  • 相关阅读:
    大话算法-排序-希尔排序
    Linux三剑客-awk
    Linux三剑客-sed
    大话算法-排序-冒泡排序
    大话算法-排序-选择排序
    删除Win10菜单中的幽灵菜单(ms-resource:AppName/Text )
    微信推送模板消息
    获取当前域名的根域
    MVC 全站开启缓存,缓解服务器的请求压力
    MVC 开启gzip压缩
  • 原文地址:https://www.cnblogs.com/MatrixBlogs/p/14655984.html
Copyright © 2020-2023  润新知