Is it normal to use istio-proxy as only one sidecar proxy or with another reverse proxy such as Nginx?

In our current MSA, each service has it’s own Nginx container for the use of reverse proxy to handle HTTP request route to backend application. (i.e., 80 port to xxxx backend port)

We’re now introducing service mesh with Istio implementation.

It seems there are pros and cons to leave the Nginx as is or to eliminate it.

Option 1. leave Nginx container as is for a reverse proxy:

  • pros : Don’t need to add any additional route configuration in istio-proxy(Envoy) to route HTTP request to the backend application cluster port
  • cons : Duplication or resource usage because the functionalities of current Nginx can be done by istio-proxy

Option 2. Eliminates Nginx container

  • pros : Save the waste of resource duplication and reduces the points of maintanance

  • cons : Each istio-proxy must have additional configurations such as HTTP route configuration to backend cluster or gzip compressions, etc.

Could I ask your valuable opinions for this decision of choice?

Thanks.