Nginx 反向代理,提供 http 访问,代理 https 外站内容

本文介绍如何在内网环境中使用Nginx搭建HTTP站点,实现对外网HTTPS资源的访问。通过配置Nginx作为反射代理,将内网用户的HTTP请求转发至外网HTTPS站点,同时确保页面链接正确指向内网域名。
摘要由CSDN通过智能技术生成

场景:在内网提供 http 访问外网 https 网站资源。

内网架设 nginx http 站点,通过 http://aaa.com 供访问,nginx 收到 http 请求后,反射代理外网 https://bbb.com。

配置文件:

server{
	listen 80;
	server_name aaa.com;
	resolver 192.168.1.1 valid=300s;
	resolver_timeout 300s;
	location / {
        set $remotedomain "bbb.com:8383";
		proxy_pass https://$remotedomain;
		proxy_set_header Host      $host;
		proxy_redirect https:// http://;
	}
}

1、proxy_set_header Host $host
加这项设置,bbb.com 可以获取到用户是通过哪个域名来访问资源的。这样,生成页面链接时,会指向 aaa.com,而不是外网的域名 bbb.com

2、proxy_redirect https:// http://
由于访问的 bbb.com 是 https 而不是 http,获取到的页面,页面中的链接很有可能是 https://aaa.com/ 而不是 http://aaa.com,若不加此项,nginx 不会处理 https 的请求,默认只处理 http 的请求。
加了此项后,nginx 会把 https://aaa.com/ 请求转向到 http://aaa.com。

3、resolver 和 set $remotedomain 变量
这是为了动态解析域名,如果 bbb.com 是静态 IP,就没必要使用这种方式,只要直接写到 proxy_pass 中即可。
resolver 192.168.1.1 指定的是 DNS 服务器地址,可以用路由器地址或公共 DNS,如:8.8.8.8

4、real_IP
由于不关心客户端实际内网 IP 地址,因此没加这些 http header 相关参数重写的选项,请按实际需求酌情设置。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值