Yep, then the proposal from Yuan Sheng can be concluded to the way to check wether “Preserve Client Host”.
Chao Zhang https://github.com/tokers On March 19, 2021 at 7:20:14 PM, Zexuan Luo (spacewan...@apache.org) wrote: I think the first type is not necessarily as we already have dns discovery. We can use: ``` { "upstream_host": "httpbin.org", "type":"roundrobin", "service_name": "httpbin.org" ... } ``` YuanSheng Wang <membp...@apache.org> 于2021年3月19日周五 下午6:55写道: > > I think we can make the `upstream.node` and `upstream.type` optional. > We can support those three ways: > > ```1 > { > "upstream_host": "httpbin.org" # send request to `httpbin.org` with > same host name > } > ``` > > or > > > ```2 > { > "upstream_host": "httpbin.org", > "type":"roundrobin", > "nodes": {"foo.com:80": 100}, # send request to `foo.com` with host > name `httpbin.org` > } > ``` > > or > > ```3 > { > "type":"roundrobin", > "nodes": {"foo.com:80": 100}, # send request to `foo.com` with current > request host > } > ``` > > What do you think? > > > On Thu, Mar 18, 2021 at 1:07 PM Zhiyuan Ju <juzhiy...@apache.org> wrote: > > > And we need a plan to do some changes on APISIX IMO, anyone would like to > > take this issue? > > > > Zhiyuan Ju <juzhiy...@apache.org>于2021年3月18日 周四下午1:06写道: > > > > > Yep > > > > > > Chao Zhang <zchao1...@gmail.com>于2021年3月18日 周四下午1:04写道: > > > > > >> I think the point that put forward by Ju is same with what I proposed :) > > >> > > >> Chao Zhang > > >> https://github.com/tokers > > >> > > >> On March 18, 2021 at 11:55:14 AM, Ming Wen (wenm...@apache.org) wrote: > > >> > > >> chao zhang's idea is good for me. > > >> what do you think? > > >> > > >> Thanks, > > >> Ming Wen, Apache APISIX PMC Chair > > >> Twitter: _WenMing > > >> > > >> > > >> Zhiyuan Ju <juzhiy...@apache.org> 于2021年3月18日周四 上午11:49写道: > > >> > > >> > Any conclusion and plan here? > > >> > > > >> > There has 1 related PR[1]. > > >> > > > >> > [1] https://github.com/apache/apisix-dashboard/pull/1603 > > >> > > > >> > Best Regards! > > >> > @ Zhiyuan Ju <https://github.com/juzhiyuan> > > >> > > > >> > > > >> > Zhiyuan Ju <juzhiy...@apache.org> 于2021年3月17日周三 下午11:22写道: > > >> > > > >> > > yep, after going through Tyk & Kong, I would agree to use > > >> `preserve_host` > > >> > > to replace the current 3 opinions. > > >> > > > > >> > > Best Regards! > > >> > > @ Zhiyuan Ju <https://github.com/juzhiyuan> > > >> > > > > >> > > > > >> > > Ming Wen <wenm...@apache.org> 于2021年3月17日周三 下午5:44写道: > > >> > > > > >> > >> nice! > > >> > >> +1 > > >> > >> > > >> > >> Chao Zhang <zchao1...@gmail.com>于2021年3月17日 周三下午3:12写道: > > >> > >> > > >> > >> > Why not just use one option, "Preserve Client Host”, by default > > >> it’s > > >> > >> > closed, which means the Host header will be rewrite to the > > Upstream > > >> > >> host; > > >> > >> > When it’s opened, the client host will inherited > > >> > >> > when proxying to upstream. > > >> > >> > > > >> > >> > Chao Zhang > > >> > >> > https://github.com/tokers > > >> > >> > > > >> > >> > On March 17, 2021 at 2:49:50 PM, Ming Wen (wenm...@apache.org) > > >> wrote: > > >> > >> > > > >> > >> > I think there should be only two options: preserve and use > > upstream > > >> > >> host, > > >> > >> > the default is the latter > > >> > >> > > > >> > >> > JunXu Chen <chenju...@apache.org>于2021年3月17日 周三下午1:46写道: > > >> > >> > > > >> > >> > > Hi, Community, > > >> > >> > > > > >> > >> > > Currently we use `pass_host` to mark how to process the > > upstream > > >> > >> > request’s > > >> > >> > > Host header. > > >> > >> > > > > >> > >> > > It can be one of [`pass`, `node`, `rewrite`], the default > > option > > >> is > > >> > >> > `pass`. > > >> > >> > > pass: Pass the client's host transparently to the upstream; > > >> > >> > > node: Use the host configured in the node of upstream; > > >> > >> > > rewrite: Use the value of the configuration upstream_host. > > >> > >> > > > > >> > >> > > Referring to nginx(proxy_pass), tyk and kong, we found that > > their > > >> > >> default > > >> > >> > > behavior is not to preserve the client's request Host, but to > > set > > >> > the > > >> > >> > > upstream request’s Host header to the hostname specified in the > > >> > >> > > upstream(service) by default. > > >> > >> > > > > >> > >> > > issues: > > >> > >> > > > > >> > >> > > 1. `pass_host` is not easy to understand, I think we could use > > >> > >> > > `preserve_host` or `preserve_host_header` instead. > > >> > >> > > > > >> > >> > > 2. We should also be the same behavior as nginx, tyk and kong, > > >> not > > >> > >> > preserve > > >> > >> > > the client's request Host by default if the hostname has been > > >> > >> specified > > >> > >> > in > > >> > >> > > the upstream. > > >> > >> > > > > >> > >> > > What is your opinion? Thanks! > > >> > >> > > > > >> > >> > -- > > >> > >> > Thanks, > > >> > >> > Ming Wen, Apache APISIX PMC Chair > > >> > >> > Twitter: _WenMing > > >> > >> > > > >> > >> -- > > >> > >> Thanks, > > >> > >> Ming Wen, Apache APISIX PMC Chair > > >> > >> Twitter: _WenMing > > >> > >> > > >> > > > > >> > > > >> > > > -- > > > 来自 琚致远 > > > > > -- > > 来自 琚致远 > > > > > -- > > *MembPhis* > My GitHub: https://github.com/membphis > Apache APISIX: https://github.com/apache/apisix