编程技术分享平台

网站首页 > 技术教程 正文

Nginx 反向代理任意请求的域名(nginx反向代理域名访问)

xnh888 2024-09-19 06:14:55 技术教程 28 ℃ 0 评论

有一个需求是作为子域名反向代理全网的域名,最早采用的方案是用爬虫爬取全网的域名,然后生成 Nginx 配置文件。

比如请求 baidu.example.com 则反向代理 www.baidu.com

爬取全网域名的工作已经完成,在调试 Nginx 反向代理配置遇到了一个问题:www.baidu.com 引用了static.baidu.com 的资源,如何正确的引用资源成了阻碍项目进展的难题。

最后我决定采用 Nginx 正则表达式做一个 hack,截取请求来的 www.baidu.com.example.com 中的www.baidu.com,然后写 Nginx 相应的代理配置。

server {

listen 80;

server_name _;

location / {

resolver 8.8.8.8;

if ($host ~ (.*)\.haojk\.cn) {

proxy_pass http://$1;

}

proxy_set_header referer http://$1;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host $1;

proxy_set_header Accept-Encoding "";

subs_filter (https?://[^\'"\\\\<>:\s]+(:\d+)?)?([^\'"\\\\<>:\s]+?) http//$3.haojk.cn/ rgi;

}

}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表