使用二级域名作为独立url, nginx使用通配符配置域名绑定
这种方案浪费域名资源
官方文档 https://nginx.org/en/docs/http/server_names.html
本地测试
host文件增加三个配置
127.0.0.1 abc.pan-domain.stu
127.0.0.1 efg.pan-domain.stu
127.0.0.1 yangliuan.pan-domain.stu
nginx配置
server {
listen 80;
#通配符绑定
server_name *.pan-domain.stu;
root /home/yangliuan/Code/Study/PHP/pan-domain;
index index.php;
location ~ [^/]\.php(/|$) {
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ ^/(\.user.ini|\.ht|\.git|\.svn|\.project|LICENSE|README.md) {
deny all;
}
}
测试结果
对其中一个域名yangliuan.pan-domain.stu 进行优先级测试,增加单独的站点配置和绑定,
server {
listen 80;
server_name yangliuan.pan-domain.stu;
root /home/yangliuan/Code/Study/PHP/test;
index index.php;
location ~ [^/]\.php(/|$) {
#fastcgi_pass remote_php_ip:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ ^/(\.user.ini|\.ht|\.git|\.svn|\.project|LICENSE|README.md) {
deny all;
}
}
结果如下
说明 server_name指令中 指定名称的优先级大于通配符
yangliuan.pan-domain.stu 的优先级大于 *.pan-domain.stu
如果云平台可以调用平台的域名解析接口,添加子域名解析 或者使用*.xxxx.com 泛域名解析
最简单实用的方案,给每个用户生成一个固定的独立子路由
- 使用用户昵称 命名
- 用户唯一标识 命名