我在该服务器中有一个专用服务器,我部署了5个nodejs应用程序。
domain name: www.nnd.com
dedicated server ip: xxx.xx.x.60
我的域名是指向我的专用服务器ip。
子域名是:
app1.nnd.com pointed to xxx.xx.x.60
app2.nnd.com pointed to xxx.xx.x.60
app3.nnd.com pointed to xxx.xx.x.60
app4.nnd.com pointed to xxx.xx.x.60
app5.nnd.com pointed to xxx.xx.x.60
现在在基于我需要路由代理的子域的nginx配置文件中。 例如:
{
listen:80;
server_name:xxx.xx.x.60
location / {
#here based on subdomain of the request I need to create proxy_pass for my node application
}
}
是否有任何条件,如何从代理标头中获取原始域名?
答案 0 :(得分:45)
为每个
创建一个虚拟主机server {
server_name sub1.example.com;
location / {
proxy_pass http://127.0.0.1:xxxx;
}
}
server {
server_name sub2.example.com;
location / {
proxy_pass http://127.0.0.1:xxxx;
}
}
继续,更改端口号以匹配正确的端口。
答案 1 :(得分:17)
您可以使用RegExp来获取此主机名
server {
server_name ~^(www\.)?(?<domain>.+)$;
location / {
root /sites/$domain;
}
}