Host Redirect
Gloo Gateway allows you to specify redirects instead of routes to a destination.
Setup
Before you begin, this guide assumes that you have the following setup.
- Install Gloo Gateway in the
gloo-systemnamespace. - Enable discovery mode for Gloo Gateway. If not, make sure that you created any Upstream resources with the appropriate functions.
- Install the
glooctlcommand line tool. - Identify the URL of the gateway proxy that you want to use for this guide, such as with the
glooctl proxycommand. Note that if you are testing in a local cluster such as Kind, you must use the custom localhost port that you configured instead ofglooctl proxy, such ashttp://localhost:31500.
Creating a redirect virtual service
Let’s create a virtual service with a redirect action instead of a route action, redirecting “foo” to “google.com”:
apiVersion: gateway.solo.io/v1
kind: VirtualService
metadata:
name: test-redirect
namespace: gloo-system
spec:
virtualHost:
domains:
- 'foo'
routes:
- matchers:
- prefix: /
redirectAction:
hostRedirect: "google.com"
Now if we curl the route, we should get a 301 Permanently Moved response.
curl -v -H "Host: foo" $(glooctl proxy url)
This will contain the following message:
< HTTP/1.1 301 Moved Permanently
< location: http://google.com/
Summary
A virtual service route can be configured with a redirect instead of a routing action.
Let’s clean up the virtual service we created: