Nginx 反向代理如何不返回后端内部IP?

测试命令:

telnet xx.xx.xx.xx 8747

GET / HTTP/1.0

响应:

HTTP/1.1 302 Moved Temporarily
Date: Mon, 21 Dec 2020 07:06:19 GMT
Content-Type: text/html
Content-Length: 126
Connection: close
Location: https://192.168.234.111:8747/ 
Server: Server

<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
</body>
</html>

其中响应中Location返回了内部IP,违反安全规则,如何隐藏或是屏蔽呢??

邀请回答
提问于 2020-12-21 16:17
270 次浏览
共1个回答

发表评论
  • 陶辉
    2020-12-21 16:40

    你是想把上游返回 的Location值修改掉吗?可以使用proxy_redirect指令,用法在这http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect。

    另外,通常上游是应当知道对外的域名的,否则很多跨域的安全问题就无法解决,此时上游的Location是能够拼出正确的域名的。

    1
    回复
    举报
    • 浅行 2020-12-21 17:05

      是的,您是说上游到nginx注册反向代理时,将提供给外部访问的域名(EIP) 带给nginx,设置到proxy_redicect信息中?

      0
      回复
      举报
    • 陶辉 回复 浅行 2020-12-21 17:26

      2个方案,其中方案1我更推荐:

      1、上游返回Location中自带域名,这有利于网络安全。

      2、其次,才是Nginx将上游返回的IP地址,用proxy_redicect改为域名。

      0
      回复
      举报
    • 浅行 2021-03-18 15:12

      有没有办法禁用这种重定向功能。对外暴露的HTTPS接口禁用通过HTTP访问??

      0
      回复
      举报
提问者

浅行

暂无个人介绍

  • 0

    文章

  • 0

    粉丝

  • 1

    被赞

浅行
按Enter键发送
您已邀请位用户
Copyright 公安部网络安全保卫局 All Rights Reserved
京公网安备 11010502047880号    京ICP备05070602号