nginx启用ssl_preread_server_name并透传真实客户端IP
时间: 2023-08-02 22:07:48 浏览: 414
启用`ssl_preread_server_name`并透传真实客户端IP需要进行如下配置:
1. 在Nginx配置文件中加入`ssl_preread`相关配置:
```nginx
stream {
map $ssl_preread_server_name $upstream {
mydomain.com backend_mydomain;
myotherdomain.com backend_myotherdomain;
default backend_default;
}
upstream backend_mydomain {
server 192.168.1.1:443;
}
upstream backend_myotherdomain {
server 192.168.1.2:443;
}
upstream backend_default {
server 192.168.1.3:443;
}
server {
listen 443;
proxy_pass $upstream;
ssl_preread on;
ssl_preread_server_name on;
proxy_protocol on;
}
}
```
2. 在后端服务器中安装支持`proxy_protocol`的软件,如HAProxy等。
3. 配置后端服务器接收`proxy_protocol`协议,并解析出客户端的真实IP地址。
这样配置之后,Nginx会使用`ssl_preread`预读取客户端的TLS版本和SNI信息,并将请求转发到相应的后端服务器上。同时,Nginx也会通过`proxy_protocol`透传客户端的真实IP地址给后端服务器。
阅读全文