Nginx配置泛域名解析

之前的项目目录如下:

├─data 数据盘
│  ├─www            网站根目录
│  │  ├─project1    项目1
│  │  ├─project2    项目2
│  │  ├─project3    项目3
│  │  ├─project4    项目4

访问路径:

http://www.chaisz.xyz/project1/   项目1
http://www.chaisz.xyz/project2/   项目2
http://www.chaisz.xyz/project3/   项目3
http://www.chaisz.xyz/project4/   项目4

现在的项目目录如下:

├─data 数据盘
│  ├─www          
│  ├─project1    项目1
│  ├─project2    项目2
│  ├─project3    项目3

访问路径:

http://www.chaisz.xyz/         项目www
http://project1.chaisz.xyz/    项目1
http://project2.chaisz.xyz/    项目2
http://project3.chaisz.xyz/    项目3

域名云解析需要添加A记录,主机记录:*,记录值:服务器公网IP。

nginx config 更改:

server{
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    root /data/$subdomain/public;
    # Make site accessible from http://localhost/
    server_name ~^(?.+).chaisz.xyz$;
    location / {
        index  index.php index.html index.htm;
         #如果请求既不是一个文件,也不是一个目录,则执行一下重写规则
         if (!-e $request_filename)
         {
            #地址作为将参数rewrite到index.php上。
            rewrite ^/(.*)$ /index.php/$1;
            #若是子目录则使用下面这句,将subdir改成目录名称即可。
            #rewrite ^/subdir/(.*)$ /subdir/index.php/$1;
         }
    }
    #proxy the php scripts to php-fpm
    location ~ \.php {
            include fastcgi_params;
            ##pathinfo支持start
            #定义变量 $path_info ,用于存放pathinfo信息
            set $path_info "";
            #定义变量 $real_script_name,用于存放真实地址
            set $real_script_name $fastcgi_script_name;
            #如果地址与引号内的正则表达式匹配
            if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                    #将文件地址赋值给变量 $real_script_name
                    set $real_script_name $1;
                    #将文件地址后的参数赋值给变量 $path_info
                    set $path_info $2;
            }
            #配置fastcgi的一些参数
            fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
            fastcgi_param SCRIPT_NAME $real_script_name;
            fastcgi_param PATH_INFO $path_info;
            ###pathinfo支持end
        fastcgi_intercept_errors on;
        fastcgi_pass   127.0.0.1:9000;
    }

    location ^~ /data/runtime {
    return 404;
    }

    location ^~ /application {
    return 404;
    }

    location ^~ /simplewind {
    return 404;
    }
}

如果要支持HTTPS需要买通配符域名证书,配置参考上面。
我的只有一个单域名证书, 只支持 www
443端口的配置就不修改了。

你可能感兴趣的:(Nginx配置泛域名解析)