I have deployed Nginx ingress controller in Kubernetes.
There are two pods running on different nodes
Furthermore, I have configured three ingresses with these three paths:
- /
- /dashboard
- /grafana
The following scenario leads to further requests being blocked until the first request is finished:
I make a request on / via the browser. This is sent to Pod A via Service A. Pod A makes time.sleep(60).
I then make a request on /dashboard. The dashboard does not load until the first request is completed.
As far as I understand, nginx should be able to process the requests in parallel. But somehow this does not seem to be the case.
I hope you can help me.
Many thanks in advance.
2
Answers
If you are having problems with your NGINX ingress controller that are preventing requests from being handled as intended please make sure that the Proxy-buffering should be disabled to process requests without waiting for the initial request to finish, and you can also use the particular annotations to regulate how requests are handled. For more details, see here.
Additionally you can try utilizing ingress controller annotations and server-snippet annotation, or you can override the current Nginx Ingress Controller’s ConfigMap.
Can you please share your nginx config