需求如下:
由于之前泛解析有上百个域名需要向上图所示的这种需求,所以需要一个通用方法进行处理。思路如下:
1,首先通过Nginx获取到所有泛解析的二级子域名
2,通过Nginx的 proxy_set_header 自定义变量获取请求url主机头部
3,后端使用程序获取Nginx传递过来的url主机头,进行跳转至www.csdn.net/topics*.html
操作如下:
* 泛解析在DNS中解析到Nginx服务器
添加Nginx配置文件
upstream x {
server 10.0.0.x:6096; 这里的6096是后端服务,后端程序会通过$subdomain获取到abc,qedd,等主机头部,然后进行跳转
}
server {
server_name ~^(?<subdomain>.+).yourdomain.com$;
listen 80;
access_log logs/testb.access.log main;
error_log logs/testb.error.log;
location = /favicon.ico {
alias /root/org/favicon.ico;
}
error_page 500 502 503 504 /500.html;
location /500.html {
internal;
}
error_page 404 /404.html;
location = /robots.txt {
alias /usr/local/webserver/nginx/conf/robots.txt;
}
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
#custom header from upstream server
proxy_set_header DEFINE-REDIRECT $subdomain;
proxy_pass http://x$uri$is_args$args;
}
}
本文转自crazy_charles 51CTO博客,原文链接:http://blog.51cto.com/douya/1949613,如需转载请自行联系原作者