The process flows of layer-7 and layer-4 CLB (formerly application CLB) are shown below:
If layer-7 CLB is used to forward HTTP/HTTPS protocols, you can add a corresponding domain name when creating the forwarding rule in a CLB listener.
Layer-7 CLB can forward requests from different domain names and URLs to different servers. A layer-7 listener can be configured with multiple domain names, each of which can be configured with multiple forwarding paths.
www.example.*, that is, wildcard domain names begin or end with
*which appears only once.
~which can appear only once.
example.qcould.comas an example, the format is as follows:
URL ~*.(gif|jpg|bmp)$, it will match all .gif, .jpg and .bmp files.
When the requested domain name does not match any rule, CLB will forward the request to the default domain name (Default Server). One listener can have only one default domain name.
For example, the
HTTP:80 listener of CLB instance 1 is configured with two domain names:
www.test1.com is the default domain name. When a user visits
www.example.com, since no domain name is matched, CLB will forward the request to the default domain name
- If your layer-7 listener has a default domain name configured, client requests that do not match other rules will be forwarded to it.
- If your layer-7 listener has no default domain name configured, client requests that do not match other rules will be forwarded to the first domain name loaded by CLB (its loading order may be different from that configured in the console; therefore, it may not be the first one configured in the console).
- Starting from May 18, 2020:
- All new layer-7 listeners must have a default domain name: the first rule of a layer-7 listener will be set as the default domain name. When you create a layer-7 rule via API, the
DefaultServerfield is set to
- For all listeners that have a default domain name configured, you need to specify a new default domain name when modifying or deleting the existing default domain name: when you perform the operation in the console, you need to specify a new default domain name; when you perform the operation by calling an API, if you do not set a new default domain name, CLB will set the earliest-created one among the remaining domain names as the new default domain name.
- For existing rules without a default domain name, you can directly configure a default domain name based on your business needs as instructed in operation 4 below. If you don't do so, Tencent Cloud will set the first domain name loaded by CLB as the default domain name. Existing listeners will be all processed before June 19, 2020.
The above policy will be implemented gradually starting from May 18, 2020, and the effective date for each instance may vary slightly. As of June 20, 2020, all layer-7 listeners that have a forwarded domain name will have a default domain name.
The following four operations can be performed on the default domain name:
Layer-7 CLB can forward requests from different URLs to different servers for processing, and multiple forwarded URL paths can be configured for a single domain name.
/., with valid character sets including
~which can appear only once.
=indicates exact match.
^~indicates that the URL starts with a regular string and is not for regex match.
~indicates case-sensitive regex match.
~*indicates case-insensitive regex match.
/indicates generic match, where any requests will be matched if there are no other matches.
example.qloud.com/test1/image/index1.htmlexactly matches the URL rule configured by forwarding group 1, the request will be forwarded to the real server associated with forwarding group 1, i.e., port 80 of CVM1 and CVM2 in the figure.
example.qloud.com/test1/image/hello.htmlhas no exact match, it will match forwarding rule 2 based on longest prefix match; therefore, the request will be forwarded to the real servers associated with forwarding rule 2, i.e., port 81 of CVM2 and CVM3 in the figure.
example.qloud.com/test2/video/mp4/has no exact match, it will match forwarding rule 3 based on longest prefix match; therefore, the request will be forwarded to the real server associated with forwarding rule 3, i.e., port 90 of CVM4 in the figure.
example.qloud.com/test3/hello/index.htmlhas no exact match, it will match the root directory's default URL
example.qloud.com/by longest prefix match. In this case, Nginx will forward the request to the real server such as FastCGI (php) or Tomcat (jsp), while Nginx will exist as a reverse proxy server.
example.qloud.com/test2/has no exact match, it will match the root directory's default URL
example.qloud.com/by longest prefix match.
example.qloud.com/test1/image/index1.htmland matches it with forwarding group 1. However, the real server of forwarding group 1 has an exception and a 404 error page appears. You will see the 404 error page, but not being redirected to other pages.
/, but the access request from the client does not contain
/, then the request will be redirected to a rule ending with
HTTP:80listener, the configured domain name is
www.test.com/abc, it will be redirected to
www.test.com/abc/, it will match
www.test.com/abc, it will match
www.test.com/abc/, it will also match
A health check domain name is the domain name used by layer-7 CLB to detect the health status of a real server.
_. For example,
A health check path is the URL path used by layer-7 CLB to detect the health status of a real server.
/. You can enter a custom path starting with /.
:. For example,