Location-aware public URL (PREMIUM SELF)
With Geo proxying for secondary sites, you can provide GitLab users with a single URL that automatically uses the Geo site closest to them. Users don't need to use different URLs or worry about read-only operations to take advantage of closer Geo sites as they move.
With Geo proxying for secondary sites web and Git requests are proxied from secondary sites to the primary.
Though these instructions use AWS Route53, other services such as Cloudflare can be used as well.
Prerequisites
This example creates a gitlab.example.com
subdomain that automatically directs
requests:
- From Europe to a secondary site.
- From all other locations to the primary site.
The URLs to access each node by itself are:
-
primary.example.com
as a Geo primary site. -
secondary.example.com
as a Geo secondary site.
For this example, you need:
- A working GitLab primary site that is accessible at
gitlab.example.com
andprimary.example.com
. - A working GitLab secondary site.
- A Route53 Hosted Zone managing your domain for the Route53 setup.
If you haven't yet set up a Geo primary site and secondary site, see the Geo setup instructions.
AWS Route53
Create a traffic policy
In a Route53 Hosted Zone, traffic policies can be used to set up a variety of routing configurations.
-
Go to the Route53 dashboard and select Traffic policies.
-
Select Create traffic policy.
-
Fill in the Policy Name field with
Single Git Host
and select Next. -
Leave DNS type as
A: IP Address in IPv4 format
. -
Select Connect to..., then Geolocation rule.
-
For the first Location:
- Leave it as
Default
. - Select Connect to..., then New endpoint.
- Choose Type
value
and fill it in with<your **primary** IP address>
.
- Leave it as
-
For the second Location:
- Choose
Europe
. - Select Connect to... and select New endpoint.
- Choose Type
value
and fill it in with<your **secondary** IP address>
.
- Choose
-
Select Create traffic policy.
-
Fill in Policy record DNS name with
gitlab
. -
Select Create policy records.
You have successfully set up a single host, like gitlab.example.com
, which
distributes traffic to your Geo sites by geolocation.
Enable Geo proxying for secondary sites
After setting up a single URL to use for all Geo sites, continue with the steps to enable Geo proxying for secondary sites.