【发布时间】:2016-08-19 05:29:32
【问题描述】:
如果我的 nginx 网络服务器配置上有一个子域:sub.mydomain.com
我有一个在端口 5000 上侦听的后端服务器:http://127.0.0.1:5000
是否可以将所有子域调用传递到后端?
喜欢:https://sub.mydomain.com/list 到 http://127.0.0.1:5000/sub/list
这应该适用于所有方法:POST、PUT、GET、DELETE
更新:
当我呼叫我的服务器时:https://mysubdomain.mydomain.com
具有以下配置:
upstream http_backend {
server 127.0.0.1:5000;
}
server_name ~^(?<subdomain>[^.]+)\.mydomain\.com;
这不起作用(错误:404):
location / {
proxy_pass http://http_backend/$subdomain/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
这很好用:
location / {
proxy_pass http://http_backend/mysubdomain/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
当我在 access_log 中记录 $subdomain 变量时,它似乎是正确的。 nginx版本:nginx/1.9.15
【问题讨论】:
标签: nginx url-rewriting