利用nginx泛域名解析配置二级域名和多域名
1.二级域名对应不同的目录
网站的目录结构为
html
├── bbs
└── www
修改两行配置:
server_name ~^(?<subdomain>.+).yourdomain.com$;
root html/$subdomain;
正则匹配,(? pattern),匹配的pattern,可以通过name变量访问
2.二级域名使用同一个目录,但不同的参数
使用泛解析,实现同一个项目,不同数据;商铺的不同域名的实现。
server_name ~^(?<subdomain>.+).trhuiwen.com$;
root "/var/www/test";
location / {
index index.html index.htm index.php;
rewrite ^(.*)$ /index.php?app=$subdomain last;
}
3.因为已经获取到了二级域名,并用参数保存了,所以可以实现proxy_pass的不同代理。
也就是不同的商铺可以放在不同的服务器上。
注意:
已使用反向代理如何再使用二级域名的泛解析二级目录:
#####原:admin.com 和admin.com/agent
upsteam admin
{
server localhost:8080;
server localhost:8081;
}
server {
listen 80;
server_name admin.com;
location / {
index index.html index.htm;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://admin/;
}
}
#####现:admin.com t agent.com
#####新增加如下配置
upsteam admin
{
server localhost:8080;
server localhost:8081;
}
server {
listen 80;
server_name agent.com;
location / {
index index.html index.htm;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://admin/agent; #在proxy_pass后面直接添加二级目录名
}
}