Difficulty: Beginner
Estimated Time: 10 minutes

This scenario aims to support you migrating from NGINX to Envoy Proxy. It will help you to apply any previous experience and understanding of NGINX to Envoy.

You will learn how to:

  • Configure Envoy Proxy server configuration and settings.

  • Configure Envoy Proxy to proxy traffic to external services.

  • Configure access and error logs.

At the end of the scenario, you will have an understanding of the core Envoy Proxy functionality, and how you can migrate existing NGINX scripts to the platform.

Congratulations! You have successfully translated a NGINX configuration file to Envoy Proxy.

In this scenario you learned how to:

  • Configure Envoy Proxy server configuration and settings.

  • Configure Envoy Proxy to proxy traffic to external services.

  • Configure access and error logs.

Migrating from NGINX to Envoy Proxy

Step 1 of 7

Step 1 - NGINX Example

This scenario uses a crafted nginx.conf based on the full example from the NGINX Wiki. You can view the configuration in the editor by opening nginx.conf

NGINX configurations generally have three key elements:

1) Configuring the NGINX server, logging structure and Gzip functionality. This is defined globally across all instances.

2) Configuring NGINX to accept requests for one.example.com host on port 8080.

3) Configuring the target location of how to handle traffic to different parts of the URL.

Not all of the configuration will apply to Envoy Proxy, and you won’t need to configure certain aspects. Envoy Proxy has four key types that support the core infrastructure offered by NGINX. The core is:

  • Listeners: They define how Envoy Proxy accepts incoming requests. At present, Envoy Proxy only supports TCP-based listeners. Once a connection is made, it’s passed on to a set of filters for processing.

  • Filters: They are part of a pipeline architecture that can process inbound and outbound data. This functionality enables filters such as Gzip which compresses data before sending it to the client.

  • Routers: These forward traffic to the required destination, defined as a cluster.

  • Clusters: They define the target endpoint for traffic and the configuration settings.

We'll use these four components to create an Envoy Proxy configuration to match the NGINX configuration defined. Envoy's focus has been on API and dynamic configuration. In this case, the configuration will use static, hardcoded resources as defined by NGINX.

envoy.yaml