【发布时间】:2016-12-26 11:17:07
【问题描述】:
我在 localhost 子域上的 nginx proxy_pass 重定向遇到了一些问题。我有一个域“domain.com”,我想在 *.localhost:9000 上重定向 *.domain.com 上的所有请求。然后节点处理 *.localhost:9000 上的所有请求到好的 express 应用程序。
当我尝试以下操作时在 nginx conf 上:
server {
server_name extranet.domain.com;
listen 80;
location / {
proxy_pass http://extranet.localhost:9000;
}
}
extranet.domain.com 上的请求被很好地重定向到良好的 express webapp。
有了这个:
server {
server_name ~^(.*?)\.domain\.com$;
listen 80;
location / {
proxy_pass http://localhost:9000/$1;
}
}
在localhost:9000 上运行的Express 应用程序处理请求/mysubdomainname,这意味着正则表达式是好的。
但是当我尝试时:
server {
server_name ~^(.*?)\.domain\.com$;
listen 80;
location / {
proxy_pass http://$1.localhost:9000;
}
}
*.domain.com 上的所有请求都返回 http 代码 502。
为什么 http://localhost:9000/$1; 有效而不是 http://$1.localhost:9000; ?
(所有子域都设置在/etc/hosts)。
提前致谢。我完全迷路了!
【问题讨论】: