Forwarding Policy
Overview
You can configure forwarding policies for HTTP or HTTPS listeners to forward requests to different backend server groups based on domain names or paths.
A forwarding policy consists of two parts: forwarding rule and action. For details, see Table 1.
Policy Type | Forwarding Rules | Actions |
---|---|---|
Forwarding policy | Domain name and Path | Forward to another backend server group and Redirect to another listener (only for HTTP listeners) |
Advanced forwarding policy | Domain name, Path, HTTP request method, HTTP header, Query string, and CIDR block | Forward to another backend server group, Redirect to another listener, and Return a specific response body |
You can configure an advanced forwarding policy by referring to Managing an Advanced Forwarding Policy.
How Requests Are Matched
- After receiving a request, the load balancer attempts to find a matching forwarding policy based on the domain name or path in the request:
- If a match is found, the request is forwarded to the backend server group you select or create when you add the forwarding policy.
- If no match is found, the request is forwarded to the default backend server group that is specified when the listener is created.
- If both a domain name and path are configured for a forwarding policy, the request can match the forwarding policy only when the domain name and path are both met.
- If advanced forwarding is not enabled for a dedicated load balancer, the matching order is determined by the following rules:
- When a request matches both a domain name-based policy and a path-based policy, the domain named-based policy is matched first. Table 2 shows an example.
- Forwarding policy priorities are independent of each other regardless of domain names.
- Path-based forwarding rules are applied in the following order of priority: an exact match rule, a prefix match rule, and a regular expression match rule. For multiple matches of the same type, only the longest path rule will be applied.
Request | Forwarding Policy | Forwarding Rule | Specified Value |
---|---|---|---|
www.elb.com/test | 1 | Path | /test |
2 | Domain name | www.elb.com |
In this example, although request www.elb.com/test matches both forwarding policies, it is routed based on forwarding policy 2 because domain named-based forwarding rules are applied first.
Notes and Constraints
- Forwarding policies can be configured only for HTTP and HTTPS listeners.
- Forwarding policies must be unique.
- A maximum of 100 forwarding policies can be configured for a listener. If the number of forwarding policies exceeds the quota, the excess forwarding policies will not be applied.
- When you add a forwarding policy, note the following:
- The URL in a forwarding rule can contain only a path but cannot contain query strings. For example, if the path is set to /path/resource?name=value, the forwarding policy is invalid.
- Each path must exist on the backend server. If the path does not exist, the backend server will return 404 Not Found.
- In the regular expression match, the characters are matched sequentially, and the matching ends when any rule is matched. Matching rules cannot overlap with each other.
- A path cannot be configured for two forwarding policies.
- A domain name cannot exceed 100 characters.
Adding a Forwarding Policy
- Log in to the management console.
- Click
in the upper left corner of the console and select a desired region and project.
- Click
in the upper left corner to display Service List and choose Network > Elastic Load Balance.
- On the displayed page, locate the load balancer you want to add forwarding policy for and click its name.
- On the Listeners tab, add a forwarding policy in either of the following ways:
- Locate the target listener and click Add/Edit Forwarding Policy in the Forwarding Policies column.
- Locate the target listener, click its name, and click the Forwarding Policies tab.
- Click Add Forwarding Policy. Configure the parameters based on Table 3.
Table 3 Forwarding policy parameters Parameter
Type
Description
Example Value
Forwarding Rule
Domain name
Specifies the domain name that will be exactly matched against the domain names in requests.
You need to specify either a domain name or path.
www.test.com
Path
- Description
Specifies the path used for forwarding requests. A path can contain letters, digits, and special characters: _~';@^-%#$.*+?,=!:|\/()[]{}
- Matching rules
- Exact match: The request path is the same as the specified path and must start with a slash (/).
- Prefix match: The request path starts with the specified path string and must start with a slash (/).
- Regular expression match: The paths are matched using a regular expression.
/login.php
Action
Forward to a backend server group
Specifies the backend server group to which a request is routed if it matches the configured forwarding rule.
N/A
Redirect to another listener
Specifies the HTTPS listener to which a request is routed if it matches the configured forwarding rule.
This action can be configured only for HTTP listeners.
NOTE:If you select Redirect to another listener, the HTTP listener will redirect requests to the specified HTTPS listener, but access control configured for the HTTP listener still takes effect.
N/A
- Description
- Click Save.
- Overview
- How Requests Are Matched
- Notes and Constraints
- Adding a Forwarding Policy