nginx反向代理ipv6网站,使其可被ipv4访问

该博客介绍在ubuntu 18.04.1且主机为ipv6/v4双栈环境下,使用Nginx反向代理IPv6网站的方法。包括安装Nginx、编辑nginx.conf和proxy.conf文件,可添加多个server代理多端口,最后重启Nginx。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:ubuntu 18.04.1 主机本身ipv6/v4双栈

0. 安装nginx

sudo apt-get install nginx

1. 编辑nginx.conf

sudo vi /etc/nginx/nginx.conf
在http{}段添加
include /etc/nginx/proxy.conf;

2. 编辑proxy.conf,反向代理ipv6网站

sudo vi /etc/nginx/proxy.conf
输入以下配置(以北邮人为例)
server {
listen 80;
server_name tv.test.com;#你自己的域名
location /{
    proxy_redirect off;
    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_pass http://tv.byr.cn;#你想要反代的v6网站域名
    proxy_connect_timeout 1; #解决访问速度慢
               }
          }
可以添加多个server以代理多个端口。

3. 重启nginx

sudo nginx -s stop
sudo nginx
### 配置Nginx作为反向代理并获取真实客户端IP 为了使Nginx能够正确地将请求反向代理到目标服务器,并确保可以获取真实的客户端IP地址,需要进行特定的配置。以下是详细的配置方法: #### 1. 基本反向代理配置 首先,在`nginx.conf`文件中的HTTP上下文中定义一个server块来处理来自外部网络的流量,并将其转发给内部的服务端口。 ```nginx http { upstream backend { server 10.1.2.3:9000; } server { listen 80; server_name localhost; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; # 设置X-Forwarded-For $proxy_add_x_forwarded_for; # 添加X-Forwarded-For头部用于传递客户端的真实IP地址[^2] proxy_set_header X-Forwarded-Proto $scheme; # 如果使用HTTPS,则设置此头以保持协议一致性 } } } ``` 这段配置实现了基本的功能需求——即把接收到的所有请求都发送到了位于`10.1.2.3:9000`上的应用服务上去了;同时设置了几个重要的HTTP头部字段用来携带关于原始请求的信息,特别是有关于源IP的部分。 #### 2. 获取真实客户端IP 当Nginx工作在一个负载均衡器之后或者其他类型的中间件之前时,默认情况下它会记录的是最后一个接触它的设备(通常是另一个代理或LB)的IP而不是最终用户的实际公共互联网地址。因此,为了让应用程序层能获得真正的访客IP,就需要利用上述提到过的那些自定义HTTP Header来进行传输。 具体来说,这里的关键在于两个Header: - `X-Real-IP`: 这个header被设定成变量`$remote_addr`,代表了最初发起连接的那个机器的实际IPv4/IPv6地址。 - `X-Forwarded-For`: 它是一个列表形式的数据结构,包含了整个链路里所有经过节点所附加进去的各个阶段的客户机IP信息。每当一个新的代理加入进来的时候就会把自己的位置加在这个队列里面去。而我们通常只需要关心最左边那个值即可因为它对应的就是最初的那一次握手时候对方给出的身份证明材料。 通过这种方式就可以保证即使是在复杂的多级代理环境下也依然可以获得准确无误的目标主机身份标识数据了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值