Nginx 通过A域名代理B域名,保持A域名访问状态

       在某些业务场景中需要一种代理方式,就是隐藏某个域名使用另一个域名去代理被需要隐藏的域名,在别人抓包或者别人查看访问地址的时候,看的域名都不是真实域名地址。所以需要用到这种代理方式。

需要被代理的B域名和地址:

https://www.tengxu.com/stronge/61541fff9ee65f0001aca1eb.jpg?gue=s&kkl=889

通过A域名代理之后的地址:

https://www.baidu.com/stronge/61541fff9ee65f0001aca1eb.jpg?gue=s&kkl=889

一、普通代理方式

下面代码中,location / 和 loaction ^~/stronge/  都可以使用

server {
		listen 443 ssl http2;
        server_name www.baidu.com;
		gzip on;
		ssl_certificate    www.baidu.com.pem;
		ssl_certificate_key    www.baidu.com.pem;
		ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
		ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
		ssl_prefer_server_ciphers on;
		ssl_session_cache shared:SSL:10m;
		ssl_session_timeout 10m;
		add_header Strict-Transport-Security "max-age=31536000";
		
		location / {
			proxy_redirect off;
			proxy_set_header Host www.tengxu.com;
			proxy_pass https://www.tengxu.com$request_uri;
		}

        location ^~/stronge/ {
			proxy_redirect off;
			proxy_set_header Host www.tengxu.com;
			proxy_pass https://www.tengxu.com$request_uri;
		}
	}

$request_uri; 是后面的路径

二、进阶代理方式

$request_uri 的截取,代理后修改上下文,去伪链接

比如B域名没有上下文,A代理B域名时,加入上下文。

A域名:https://www.tengxu.com/61541fff9ee65f0001aca1eb.jpg?gue=s&kkl=889

B域名:https://www.baidu.com/paper/61541fff9ee65f0001aca1eb.jpg?gue=s&kkl=889

nginx 配置:

  location ^~/paper/ {

        set $new_request_uri $request_uri;

        if ($request_uri ~ ^/paper/(.+)$) {
              set $new_request_uri $1;
        }
        proxy_ssl_server_name on;
        proxy_redirect off;
        proxy_set_header Host www.baidu.com;
        proxy_pass https://www.baidu.com/$new_request_uri;
   } 

 if ($request_uri ~ ^/paper/(.+)$) 这一段截取字符串时,会将最前面的 / 去除.

所以,$new_request_uri 前面必须要加 / 成为 /$new_request_uri

变成:https://www.baidu.comhttps://

三、重点处理

最重要的一条:必须要在 nginx 的http{} 中加上以下解析:

resolver 8.8.8.8;

同一ip(都是80端口)可以绑定无数个域名 配置简单 里面包含一个配置文档:配置文档.doc 看一遍 大部分人都会设置了。 内容如下: NGNIX配置文档 1.解压文件到相应文件夹下(我解压到D:/下) (这里是图片) 目录结构如上 2.在D:\nginx\目录下用记事本新建一个文本文档改名为 proxy.conf。 proxy.conf里面的内容格式如下: server { listen 80; server_name www.*****.com; location / { proxy_pass http://192.168.45.1:8045; 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; } } (完整拷贝上面的内容server_name www.*****.com; 这里面的域名即是来访域名 proxy_pass http://192.168.45.1:8045; 这里面的域名(http://192.168.45.1:8045)即是内部跳转的地址,将该内容拷贝多份实现不同来访域名的跳转) 如下: 3.找到D:\nginx\conf下nginx.conf文件用记事本打开 在文段末尾大括号前加上 include proxy.conf;(就是加载刚刚新建的那个文件(注意路径)) 4.进入cmd 进入D盘: d: 进到nginx文件夹下:cd nginx 启动nginx.exe:start nginx Cmd窗口会闪一下 进程里面会多了个 浏览器里面输入:http://127.0.0.1 将出现: Nginx的欢迎界面。 注: nginx -s stop // 停止nginx nginx -s reload // 重新加载配置文件 nginx -s quit // 退出nginx nginx-1.3.9.zip(这个版本) (1分钟搞定只是夸张说法啦,给你增加信心的啦,真正的操作起来,因人而异,没搞定的耐心再试试,自己xp系统亲测成功,不喜欢的无拍砖哦,实在搞不定的加我qq852208555 一起研究下 谢谢!)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qensq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值