天天看点

nginx泛解析域名实现多级域名多个域名跳转

需求如下:

<a href="https://s4.51cto.com/wyfs02/M02/9C/7D/wKiom1lxV4eRpqBtAAAmiQOWUlM999.png-wh_500x0-wm_3-wmp_4-s_991819238.png" target="_blank"></a>

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

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

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

操作如下:

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

添加Nginx配置文件

upstream x {

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

    }

server {

        server_name  ~^(?&lt;subdomain&gt;.+).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,如需转载请自行联系原作者

继续阅读