nginx 泛解析

日期:2019-04-01

因业务拓展,需要动态的分配二级域名. 如果每次都添加单独的解析和域名配置,很麻烦而且时效性有延迟,也不利于维护. 所以直接使用nginx的泛解析来处理

具体设置如下:

  1. 域名服务商添加泛域名解析,如我用的是阿里云的域名,以justwkj.com的域名作为示例:
  2. nginx 添加泛域名解析的配置,之后重启nginx

         server {
             listen 80;
             server_name *.justwkj.com;
    
             # 随便创建一个目录eq: /test
             root /test;
             index index.html index.htm index.php;
                 access_log /test.com.log;
    
                 # php配置自行配置
                 location ~ \.php {  
                         #fastcgi_pass 127.0.0.1:9000;   
                         #fastcgi_pass unix:/dev/shm/php-cgi.sock;   
                         fastcgi_pass  unix:/tmp/php-cgi.sock;  
                         fastcgi_index index.php;  
                         include fastcgi.conf;  
                         set $real_script_name $fastcgi_script_name;  
                         if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {  
                         set $real_script_name $1;  
                         set $path_info $2;  
                     }  
                         fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;  
                         fastcgi_param SCRIPT_NAME $real_script_name;  
                         fastcgi_param PATH_INFO $path_info;  
                     } 
         }
    
  3. 创建 /test/index.php 文件,添加如下内容
     <?php
     echo "<pre>";
     print_r($_SERVER);
    
  4. 随便输入二级域名访问 http://test.justwkj.com/?name=%E5%BC%A0%E4%B8%89 http://ceshi.justwkj.com/?name=%E5%BC%A0%E4%B8%89 非泛域名解析的域名配置,并不会收到影响,比如当前博客的 https://blog.justwkj.com/
  5. 后续
    泛域名解析已经完成了,但是业务上还是需要有一些需要注意的.示例中的所有域名都是用的是同一个代码, 比如,管理员可以在后台配置哪些泛域名可以访问,通过 $_SERVER['HTTP_HOST'] 可以获取当前的域名, 如果不在域名允许的列表中,可以直接根据业务需求跳转或者直接禁止访问.
    由于业务可能涉及到小程序相关的,合法域名如果分别设置太繁琐了,可以统一用主域名,在请求传参添加appid标志即可

results matching ""

    No results matching ""