nginx泛解析域名實現多級域名多個域名跳轉
需求如下:
由於之前泛解析有上百個域名需要向上圖所示的這種需求,所以需要一個通用方法進行處理。思路如下:
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_sir” 博客,請務必保留此出處http://douya.blog.51cto.com/6173221/1949613
nginx泛解析域名實現多級域名多個域名跳轉