@Jan Li Can you provide some examples? I think the community needs them for understanding.
On Tue, Nov 24, 2020 at 2:03 PM Jan Li <jan...@airwallex.com> wrote: > Hi community, > > APISIX is using config file and apisix bin file to generate nginx > config file. > > This provides APISIX the capability of overriding nginx's default > configurations, but also introduces some problems: > > 1. There is only one nginx server which supports the dynamic features of > APISIX. > 2. Due to point 1, all listening ports are configured in the only > server. > 3. As a consequence of this setting, some features from nginx can be > difficult to support in APISIX. For example, > 1. Configuring mTLS is easy in nginx > 1. It's easy to configure a new server in apisix bin > 2. The new server will lose all the dynamic features of APISIX. > 2. Using proxy protocol and real ip module along with normal requests > with a different real ip header > 1. If we use proxy protocol, normally the real ip header will be > configured proxy_protocol > 2. The normal requests normally use x-forwarded-for or x-real-ip > as real ip header > 3. It's impossible to configure both x-forwarded-for and > proxy_protocol in apisix > > So I want to propose: > > 1. Introduce a new kind of configuration in config.yaml: "server" under > "apisix". > 1. "server" is almost the same as nginx's server. > 2. If a server is configured a port is necessary, no matter if it's > http, https or proxy protocol http... > 3. "location" should not be included here since being dynamic often > means dynamic to locations. > 2. All configurations configured directly under "apisix" are global > configurations which will apply to all servers. > 3. All configurations can be overridden inside the server, the > configuration is the same as under "apisix". > > With this, we can better embrace the features from both apisix and > nginx. > -- *MembPhis* My GitHub: https://github.com/membphis Apache APISIX: https://github.com/apache/apisix