需求如下:

nginx泛解析域名实现多级域名多个域名跳转_第1张图片

由于之前泛解析有上百个域名需要向上图所示的这种需求,所以需要一个通用方法进行处理。思路如下:

1,首先通过Nginx获取到所有泛解析的二级子域名

2,通过Nginx的 proxy_set_header 自定义变量获取请求url主机头部

3,后端使用程序获取Nginx传递过来的url主机头,进行跳转至www.csdn.net/topics*.html 

操作如下:

  1. * 泛解析在DNS中解析到Nginx服务器

  2. 添加Nginx配置文件


  3. upstream x {

  4.      server 10.0.0.x:6096;   这里的6096是后端服务,后端程序会通过$subdomain获取到abc,qedd,等主机头部,然后进行跳转


  5.     }

  6. server {

  7.         server_name  ~^(?.+).yourdomain.com$;

  8.         listen  80;

  9.         access_log  logs/testb.access.log  main;

  10.         error_log   logs/testb.error.log;

  11.         location = /favicon.ico {

  12.             alias   /root/org/favicon.ico;

  13.         }


  14.         error_page 500 502 503 504   /500.html;

  15.         location /500.html {

  16.          internal;

  17.         }

  18.         error_page 404 /404.html;

  19.        location = /robots.txt {

  20.             alias   /usr/local/webserver/nginx/conf/robots.txt;

  21.         }

  22.         location / {

  23.             proxy_pass_header Server;

  24.             proxy_set_header Host $http_host;

  25.             proxy_redirect off;

  26.             proxy_set_header X-Real-IP $remote_addr;

  27.             proxy_set_header X-Scheme $scheme;

  28.             #custom header from upstream server

  29.             proxy_set_header   DEFINE-REDIRECT    $subdomain;

  30.             proxy_pass http://x$uri$is_args$args;


  31.         }

  32.     }