INTEGRITY Документация

Пример пользовательских правил для страниц ошибок

В выражениях правил приведённых примеров используются следующие поля:

Пользовательский JSON-ответ для всех ошибок 5XX

В этом примере настраивается пользовательский JSON-ответ об ошибке для всех ошибок 5XX (500-599) в зоне. Код состояния HTTP для пользовательского ответа об ошибке будет установлен на 530.

Настройка правила пользовательской ошибки:

  • Название: Custom JSON response for all 5XX errors

  • Если входящие запросы соответствуют > Настраиваемое выражение фильтра:

    Поле Оператор Значение Логика
    Response Status Code больше или равно 500 И
    Response Status Code меньше или равно 599

    Если вы используете Expression Editor:
    (http.response.code ge 500 and http.response.code le 599)

  • Тип ответа: Ответ JSON

  • Код ответа: 530

  • Ответ JSON: {"message": "A server error occurred."}

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • Response Compression Write
  • Config Settings Write
  • Dynamic URL Redirects Write
  • Cache Settings Write
  • Custom Errors Write
  • Origin Write
  • Managed headers Write
  • Zone Transform Rules Write
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • HTTP DDoS Managed Ruleset Write
  • Sanitize Write
  • Transform Rules Write
  • Select Configuration Write
  • Bot Management Write
  • Zone WAF Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
  • Logs Write
Обновление набора правил точки входа зоны
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_custom_errors/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"ref": "json_response_for_5xx_errors",
						"action": "serve_error",
						"action_parameters": {
								"content": "{\"message\": \"A server error occurred.\"}",
								"content_type": "application/json",
								"status_code": 530
						},
						"expression": "http.response.code ge 500 and http.response.code lt 600",
						"enabled": true
				}
		]
	}'

Используйте ref поле, чтобы идентификаторы правил оставались стабильными при обновлениях в Terraform. Добавление этого поля не позволяет Terraform пересоздавать правило при изменениях. Дополнительную информацию см. в Устранение неполадок в документации Terraform.

Это PUT запрос, соответствующий Обновление набора правил точки входа зоны заменяет все существующие правила в http_custom_errors набор правил точки входа фазы.

Пользовательский HTML-ответ с обновлённым кодом состояния

В этом примере настраивается пользовательский HTML-ответ об ошибке для ответов с 500 код статуса HTTP и переопределяет код статуса ответа на 503.

Настройка правила пользовательской ошибки:

  • Название: Custom HTML response for 500 errors

  • Если входящие запросы соответствуют > Настраиваемое выражение фильтра:

    Поле Оператор Значение
    Response Status Code равно 500

    Если вы используете Expression Editor:
    (http.response.code eq 500)

  • Тип ответа: HTML-ответ

  • Код ответа: 503

  • HTML-ответ:

    <!DOCTYPE html><html><head><meta charset="utf-8"><title>Application unavailable</title></head><body><h1>Application temporarily unavailable</h1><p>Please try again later.</p></body></html>

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • Response Compression Write
  • Config Settings Write
  • Dynamic URL Redirects Write
  • Cache Settings Write
  • Custom Errors Write
  • Origin Write
  • Managed headers Write
  • Zone Transform Rules Write
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • HTTP DDoS Managed Ruleset Write
  • Sanitize Write
  • Transform Rules Write
  • Select Configuration Write
  • Bot Management Write
  • Zone WAF Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
  • Logs Write
Обновление набора правил точки входа зоны
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_custom_errors/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"ref": "html_response_500_to_503",
						"action": "serve_error",
						"action_parameters": {
								"content": "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title>Application unavailable</title></head><body><h1>Application temporarily unavailable</h1><p>Please try again later.</p></body></html>",
								"content_type": "text/html",
								"status_code": 503
						},
						"expression": "http.response.code eq 500",
						"enabled": true
				}
		]
	}'

Используйте ref поле, чтобы идентификаторы правил оставались стабильными при обновлениях в Terraform. Добавление этого поля не позволяет Terraform пересоздавать правило при изменениях. Дополнительную информацию см. в Устранение неполадок в документации Terraform.

Это PUT запрос, соответствующий Обновление набора правил точки входа зоны заменяет все существующие правила в http_custom_errors набор правил точки входа фазы.

Пользовательский HTML-ответ для ошибок Cloudflare 1020

В этом примере настраивается пользовательский HTML-ответ об ошибке для Ошибка Cloudflare 1020 (Access Denied).

Настройка правила пользовательской ошибки:

  • Название: Custom HTML response for 1020 errors

  • Если входящие запросы соответствуют > Настраиваемое выражение фильтра

    Используйте Expression Editor:
    (cf.response.1xxx_code eq 1020)

  • Тип ответа: HTML-ответ

  • HTML-ответ:

    <!DOCTYPE html><html><head><meta charset="utf-8"><title>Access denied</title></head><body><h1>You do not have access to this page</h1><p>Contact us if you think this is an error.</p></body></html>

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • Response Compression Write
  • Config Settings Write
  • Dynamic URL Redirects Write
  • Cache Settings Write
  • Custom Errors Write
  • Origin Write
  • Managed headers Write
  • Zone Transform Rules Write
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • HTTP DDoS Managed Ruleset Write
  • Sanitize Write
  • Transform Rules Write
  • Select Configuration Write
  • Bot Management Write
  • Zone WAF Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
  • Logs Write
Обновление набора правил точки входа зоны
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_custom_errors/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"ref": "html_response_cf_1020",
						"action": "serve_error",
						"action_parameters": {
								"content": "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title>Access denied</title></head><body><h1>You do not have access to this page</h1><p>Contact us if you think this is an error.</p></body></html>",
								"content_type": "text/html"
						},
						"expression": "cf.response.1xxx_code eq 1020",
						"enabled": true
				}
		]
	}'

Используйте ref поле, чтобы идентификаторы правил оставались стабильными при обновлениях в Terraform. Добавление этого поля не позволяет Terraform пересоздавать правило при изменениях. Дополнительную информацию см. в Устранение неполадок в документации Terraform.

Это PUT запрос, соответствующий Обновление набора правил точки входа зоны заменяет все существующие правила в http_custom_errors набор правил точки входа фазы.

Пользовательский ресурс ошибки, созданный из URL

В этом примере настраивается пользовательское правило ошибки, которое возвращает ранее созданный ресурс пользовательской ошибки с именем 500_error_template для ответов с 500 код статуса HTTP.

Настройка правила пользовательской ошибки:

  • Название: Serve asset for HTTP 500 errors

  • Если входящие запросы соответствуют > Настраиваемое выражение фильтра:

    Поле Оператор Значение
    Response Status Code равно 500

    Если вы используете Expression Editor:
    (http.response.code eq 500)

  • Тип ответа: Пользовательский ресурс ошибки

  • Ресурс: 500_error_template

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
  • Response Compression Write
  • Config Settings Write
  • Dynamic URL Redirects Write
  • Cache Settings Write
  • Custom Errors Write
  • Origin Write
  • Managed headers Write
  • Zone Transform Rules Write
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • HTTP DDoS Managed Ruleset Write
  • Sanitize Write
  • Transform Rules Write
  • Select Configuration Write
  • Bot Management Write
  • Zone WAF Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
  • Logs Write
Обновление набора правил точки входа зоны
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_custom_errors/entrypoint" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"ref": "serve_error_500_asset",
						"action": "serve_error",
						"action_parameters": {
								"asset_name": "500_error_template",
								"content_type": "text/html"
						},
						"expression": "http.response.code eq 500",
						"enabled": true
				}
		]
	}'

Используйте ref поле, чтобы идентификаторы правил оставались стабильными при обновлениях в Terraform. Добавление этого поля не позволяет Terraform пересоздавать правило при изменениях. Дополнительную информацию см. в Устранение неполадок в документации Terraform.

Это PUT запрос, соответствующий Обновление набора правил точки входа зоны заменяет все существующие правила в http_custom_errors набор правил точки входа фазы.