我想要实现的是
如果用户点击了user1.example.com,那么nginx应该在http://127.0.0.1:3001/user1显示应用内容
同样对于user2.example.com,nginx应该在http://127.0.0.1:3001/user2显示应用内容
我应该如何配置vhost块?
当前配置
服务器{ 听80;
server_name user1.example.com ;
location / {
proxy_pass http://127.0.0.1:3001/user1;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
和其他用户的类似块,我得到的问题是任何未定义的块,如果没有定义user3.example.com块,则使用第一个块。我想为未定义的路由设置默认块,我该怎么做?
此外,我正在根据需要动态地通过脚本制作服务器块并重新加载服务器。
答案 0 :(得分:0)
不是为每个用户编写一个块,而是为什么不动态地执行它。
server {
server_name ~^(?<subdomain>\w+)\.example\.com$;
location / {
proxy_pass https://127.0.0.1:3001/$subdomain ;
}
}
所以当你点击: user1.example.com =&gt; http://127.0.0.1:3001/user1