麦克的茶馆


  • 首页

  • 归档

  • 关于我

  • 搜索

配置nginx,使用stream 模式,并且传递realip 给server

时间: 2024-08-30 分类: 技术   字数: 516 字 阅读: 2分钟 阅读次数:

如何配置 Nginx Stream RealIP 传递并隐藏真实域名

在现代的网络架构中,使用 Nginx 作为反向代理服务器是非常常见的。为了增强安全性并隐藏真实的域名,我们可以配置 Nginx 的 real_ip 模块来传递客户端的真实 IP 地址,并通过 SSL/TLS 加密来保护数据传输。本文将详细介绍如何配置 Nginx 来实现这一目标。

stream部分配置概述


stream {
    # 这里就是 SNI 识别,将域名映射成一个配置名
    map $ssl_preread_server_name $backend_name {
        domain1.example.com 127.0.0.1:8888;
        
        #这个服务本机提供
        domain2.example.com 127.0.0.1:8890;
             default naive;
    }

    # 监听 443 并开启 ssl_preread
    server {
        listen 443 reuseport;
        # listen [::]:443 reuseport;
        proxy_pass  $backend_name;
 	     proxy_protocol on;# send ip info to http server
        ssl_preread on;
    }
    
    
      # 这里的SNI不需要自己处理,之间转发给8889端口上的服务处理,,相当于把 443端口的服务,转发到8889服务
     server {
        listen 8888 proxy_protocol;
        proxy_pass 127.0.0.1:8889;
    }
   }

##配置本机服务,终结ssl,并且使用用户的真实ip

http {
    set_real_ip_from 127.0.0.1/32;  # 前端 Nginx 的 IP 范围
    real_ip_header proxy_protocol;


server {
    listen 8890 ssl http2 proxy_protocol;
    listen [::]:8890 ssl http2 proxy_protocol;
    server_name domain2.example.com;

   
     #改成你的ssl证书路径
    ssl_certificate /path/to/fullchain.pem;
    ssl_certificate_key /path/to/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
   

    location / {
       # 假设真实服务在8200端口
        proxy_pass http://localhost:8200;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

}

##总结 通过以上配置,我们可以实现以下目标:

  • 使用 ssl_preread 和 proxy_protocol 在 HTTPS 连接中传递客户端的真实 IP 地址。
  • 配置 real_ip 模块以正确识别客户端的真实 IP 地址。
  • 使用 SSL/TLS 加密来保护数据传输,并隐藏真实的域名。
  • 通过这些步骤,您可以确保 Nginx 能够安全地传递客户端的真实 IP 地址,并隐藏真实的域名,从而提高系统的安全性和隐私保护。
#nginx# #stream# #realip#
Nginx配置指南:支持多域名HTTPS和代理协议
在Linux下, 路由udp包,选择不同的路由
mike163

mike163

30 日志
2 分类
57 标签
GitHub
友情链接
  • JFinal
  • Bookmarks
标签云
  • Nginx 6
  • Centos 3
  • Stream 3
  • Tls 3
  • Cloudflare 2
  • DNS 2
  • Er x 2
  • HTTPS 2
  • Iptable 2
  • Ipv6 2
© 2010 - 2024 麦克的茶馆
Powered by - Hugo v0.120.4 / Theme by - NexT
/
Storage by Gitee 仓库 / 粤 ICP 备 号
0%