.. _install_sandboxes_lua_cluster_specifier: Lua Cluster Specifier ===================== .. sidebar:: Requirements .. include:: _include/docker-env-setup-link.rst :ref:`curl ` Used to make ``HTTP`` requests. In this example, we show how the `Lua `_ cluster specifier can be used with the Envoy proxy. The example Envoy proxy configuration includes a Lua cluster specifier plugin that contains a function: - ``envoy_on_route(route_handle)`` :ref:`See here ` for an overview of Envoy's Lua cluster specifier and documentation regarding the function. Step 1: Build the sandbox ************************* Change to the ``examples/lua-cluster-specifier`` directory. .. code-block:: console $ pwd envoy/examples/lua-cluster-specifier $ docker compose pull $ docker compose up --build -d $ docker compose ps Name Command State Ports -------------------------------------------------------------------------------------------- lua-cluster-specifier-proxy-1 /docker-entrypoint.sh /usr ... Up 10000/tcp, 0.0.0.0:8000->8000/tcp lua-cluster-specifier-web_service-1 /bin/echo-server Up 0.0.0.0:8080->8080/tcp Step 2: Send a request to the normal service ******************************************** The output from the ``curl`` command below should return 200, since the lua code select the normal service. Terminal 1 .. code-block:: console $ curl -i localhost:8000/anything 2>&1 |grep 200 HTTP/1.1 200 OK Step 3: Send a request to the fake service ****************************************** The output from the ``curl`` command below should return 503, since the lua code select the fake service. Terminal 1 .. code-block:: console $ curl -i localhost:8000/anything -H "header_key:fake" 2>&1 |grep 503 HTTP/1.1 503 Service Unavailable .. seealso:: :ref:`Envoy Lua cluster specifier ` Learn more about the Envoy Lua cluster specifier. `Lua `_ The Lua programming language.