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


    原webservice是部署在tomcat上,使用的http协议端口是80,基于安全原因,需要升级使用https,使用了简单的方式在最外层加nginx做反向代理,业务调用webservice接口通过nginx再去访问。nginx需要开启SSL配置证书。

    现在发现一个问题是打开WSDL地址中soap:address location是一直是HTTP非HTTPS地址,这样会导致我们通过代理https调用接口会出现报错。301 Moved Permanently。考虑使用nginx的sub_filter模块来替换其中http为http

    nginx具体配置如下

    1. upstream webservcesgroup{
    2. server 192.168.31.100 weight=8;
    3. server 192.168.31.199 weight=2;
    4. }
    5. server {
    6. listen 443 ssl;
    7. server_name gmaaa.163.com;
    8. root html;
    9. index index.html index.htm;
    10. ssl_certificate C:/nginx/cert/server.crt;
    11. ssl_certificate_key C:/nginx/cert/server.key;
    12. ssl_session_timeout 30m;
    13. # intermediate configuration
    14. ssl_protocols TLSv1.2 TLSv1.3;
    15. ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
    16. ssl_prefer_server_ciphers off;
    17. client_max_body_size 100m;
    18. # To resolve nginx 504 issue
    19. proxy_connect_timeout 600;
    20. proxy_send_timeout 600;
    21. proxy_read_timeout 600;
    22. # webservice
    23. location /axis2/services/ {
    24. # replace WDSL address location
    25. sub_filter http://gmaaa.163.com "https://gmaaa.163.com";
    26. # replace all
    27. sub_filter_once off;
    28. sub_filter_types text/xml;
    29. proxy_set_header X-Forwarded-Proto $scheme;
    30. proxy_set_header Accept-Encoding '';
    31. proxy_set_header Host $host;
    32. proxy_set_header X-Forwarded-For $remote_addr;
    33. proxy_pass http://webservcesgroup;
    34. access_log logs/webservice-access-$logdate.log;
    35. }
    36. }

    修改后重启Nginx

    下面是访问后的截图

    大功告成!

  • 相关阅读:
    2 分钟,教你用 Serverless 每天给女朋友自动发土味情话
    铁轨(Rails, ACM/ICPC CERC 1997, UVa 514)rust解法
    Dubbo源码理解
    【代码随想录】LC 27. 移除元素
    SpingMVC之拦截器使用详解
    天天在公司刷招聘网站,我被老板发现了
    ABP - 本地事件总线
    8、绩效看板与日清计划
    Typora 窗口总数跳动问题
    Servlet | Servlet基于注解式开发、使用模板方法设计模式解决类爆炸
  • 原文地址:https://blog.csdn.net/gmaaa123/article/details/133702306