使用nginx代理ipv6

需求:现需要在ipv6环境下对测试环境项目进行测试,这里通过使用nginx将ipv6的域名解析转到实际存在的ipv4测试项目域名。搭建nginx可以参照搭建nginx

在这里插入图片描述
主机请求ipv6域名ipv6.test.com,请求报文到达nginx后,通过nginx将域名指向ipv4.test.com。nginx通过本地DNS解析出对应内网主机,最后到达目的主机。DNS也是nginx搭建的。

nginx配置文件(/etc/nginx/conf.d/test6.conf)

server {
    
    
    server_name  test6.test.com;
    listen       [::]:80;

    location / {
    
    
       return 301 https://test4.test.com$request_uri;
    }

}

server {
    
    
    server_name  test6.test.com;
    listen       [::]:443 ssl;
    ssl_certificate /etc/nginx/ssl/test.crt;
    ssl_certificate_key /etc/nginx/ssl/test.key;

    location / {
    
    
        proxy_pass https://test4.test.com;
    }

}

DNS配置文件

upstream test4_node {
    
    
      server 192.168.2.110:8080 ;
}
server{
    
    
        listen 80;
        server_name ipv4.test.com;
        location / {
    
    
            proxy_pass http://test4_node;
proxy_set_header Host $host;
#使用$host变量——它的值在请求包含“Host”请求头时为“Host”字段的值,在请求未携带“Host”请求头时为虚拟主机的主域名
proxy_set_header X-Real-IP $remote_addr;
#使用$remote_addr可以在web服务器端获得用户的真实ip
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#增加一个$proxy_add_x_forwarded_for到X-Forwarded-For里去,如果两台nginx都使用了这个配置,那么其值为客户端ip和第一台nginx的ip
        }
}

猜你喜欢

转载自blog.csdn.net/qq_43316775/article/details/111666425
今日推荐