Umbraco의 Keepalive Ping 구성 설명
keepAlive
노드는 umbracoSettings.config
에서 찾을 수 있으며 두 가지 속성이 있습니다.keepAlivePingUrl: Ping의 URL을 변경하여 Umbraco 인스턴스를 활성화합니다.기본값은
"{umbracoApplicationUrl}/api/keepalive/ping"
입니다.disableKeepAliveTask: KeepAlive time interval 작업을true로 설정하여 작업을 비활성화합니다.기본값은
false
입니다.<?xml version="1.0" encoding="utf-8" ?>
<settings>
...
<!--
keepAlive
@disableKeepAliveTask
Disables the periodic KeepAliveTask when set to "true".
Use this setting to disable the KeepAliveTask in case you already have an alternative.
For example, Azure App Service has keep alive functionality built-in.
Defaults to "false".
@keepAlivePingUrl
The url of the KeepAlivePing action. By default, the url will use the umbracoApplicationUrl setting as the basis.
Change this setting to specify an alternative url to reach the KeepAlivePing action. eg http://localhost/umbraco/api/keepalive/ping
Defaults to "{umbracoApplicationUrl}/api/keepalive/ping".
-->
<keepAlive disableKeepAliveTask="false" keepAlivePingUrl="{umbracoApplicationUrl}/api/keepalive/ping" />
</settings>
새 구성에서는 다음 두 가지 문제를 해결할 수 있습니다.1. URL이 올바르지 않아 KeepAlive가 작동하지 않습니다(404)
문제.
다음은 KeepAlive 기능을 기본 구성과 함께 사용하는 방법입니다.
ApplicationUrl
pingKeepAlive
컨트롤러의 기본 URL로 사용됩니다.URL은 다음과 같습니다. {umbracoApplicationUrl}/api/keepalive/ping
OnlyLocalRequests
속성 검증KeepAliveController.Ping
작업에 대한 요청이 로컬 컴퓨터에서 왔는지 확인합니다.요청이 로컬 시스템에서 실행되지 않으면 Umbraco는 HTTP 404 응답을 반환합니다.
KeepAliveController.Ping
작업은 요청을 수신하고 다음 XML을 반환합니다.<KeepAlivePingResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Umbraco.Web.Editors">
<Message>I'm alive!</Message>
<Success>true</Success>
</KeepAlivePingResult>
이것은 간단한 과정이지만 핑의 URL이 Only Local Requests 속성의 요구에 따라 로컬 기기로 해석될 것이라고 보장할 수 없습니다.ApplicationUrl
가 공공 도메인 a로 해석되지만 개인 도메인 B&C를 가진 두 서버 사이의 부하 균형을 요청하면 어떻게 합니까?https://domain-A.tld/umbraco
https://domain-A.tld/umbraco/api/keepalive/ping
OnlyLocalRequests
속성은 HTTP 요청을 거부하고 HTTP 404 응답참고 1: 로그에 404개의 오류가 발생하더라도 Keepalive 기능은 여전히 "약간"유효합니다.Umbraco 인스턴스 또는 ASP의 경우NET 웹 사이트는 정기적으로 업데이트됩니다.
주2: 대부분의 부하 균형기는 이미 내장된 건강 검사 기능을 가지고 있으며, HTTP를 사용하여 사이트가 시작되고 실행되었는지 검사할 수 있다.이러한 요청은 웹 사이트를 활기차게 하고 KeepAlive 기능을 불필요하게 만들 것이다.
자체 위탁 관리 IIS 웹 서버를 사용할 때 내부 DNS 기록을 추가하여 이 문제를 쉽게 해결할 수 있습니다. 이 기록들은 공공 영역을localhost로 해석합니다.그러나 많은 위탁 관리 플랫폼들이 같은 수준의 제어와 맞춤형 제작을 제공하지 않는다.Azure 응용 프로그램 서비스는 바로 이런 상황입니다. 위와 완전히 같은 문제에 부딪힐 수 있습니다. 단, 응용 프로그램 서비스에서localhost 80 또는 443을 요청할 수 없습니다.
솔루션
새 keepAlive 설정을 사용하면
keepAlivePingUrl
파일의 keepAlive
노드의 umbracoSettings.config
속성을 사용하여 핑할 URL을 설정할 수 있습니다.부하 균형 장면에서 localhost로 해석된 정확한 내부 도메인 이름 설정
keepAlivePingUrl
을 사용하거나 IIS 귀속이 다음 내용을 지원할 경우 localhost를 간단하게 사용할 수 있습니다.<?xml version="1.0" encoding="utf-8" ?>
<settings>
...
<!--
keepAlive
@disableKeepAliveTask
Disables the periodic KeepAliveTask when set to "true".
Use this setting to disable the KeepAliveTask in case you already have an alternative.
For example, Azure App Service has keep alive functionality built-in.
Defaults to "false".
@keepAlivePingUrl
The url of the KeepAlivePing action. By default, the url will use the umbracoApplicationUrl setting as the basis.
Change this setting to specify an alternative url to reach the KeepAlivePing action. eg http://localhost/umbraco/api/keepalive/ping
Defaults to "{umbracoApplicationUrl}/api/keepalive/ping".
-->
<!-- For Web Server A -->
<keepAlive disableKeepAliveTask="false" keepAlivePingUrl="https://[INTERNAL_DOMAIN_NAME_A]/api/keepalive/ping" />
</settings>
불행하게도 Azure App Services에서 호스팅되는 Umbraco 인스턴스에 localhost를 지정하는 것은 작동하지 않습니다.Azure 애플리케이션 서비스에서는 localhost 80 또는 443을 요청할 수 없습니다.다행히도, Azure 응용 프로그램은 이미 자신의 보존 기능을 가지고 있다.2. 중복 보존 기능
많은 플랫폼들이 Azure 응용 프로그램 서비스, 많은 부하 균형기, 역 프록시 등 자신만의 Keepalive 행위를 제공했다.새 구성 옵션 중 하나를 사용하여 Umbraco의 Keepalive 기능을 비활성화할 수 있습니다.KeepAlive 기능을 비활성화하려면
disableKeepAliveTask
에서 false
로 변경합니다.<?xml version="1.0" encoding="utf-8" ?>
<settings>
...
<!--
keepAlive
@disableKeepAliveTask
Disables the periodic KeepAliveTask when set to "true".
Use this setting to disable the KeepAliveTask in case you already have an alternative.
For example, Azure App Service has keep alive functionality built-in.
Defaults to "false".
@keepAlivePingUrl
The url of the KeepAlivePing action. By default, the url will use the umbracoApplicationUrl setting as the basis.
Change this setting to specify an alternative url to reach the KeepAlivePing action. eg http://localhost/umbraco/api/keepalive/ping
Defaults to "{umbracoApplicationUrl}/api/keepalive/ping".
-->
<!-- For Web Server A -->
<keepAlive disableKeepAliveTask="true" />
</settings>
이제 Umbraco의 Keepalive 작업이 비활성화되었으므로 대체 스키마가 활성화되었는지 확인하십시오.Azure 응용 프로그램 서비스의 경우 응용 프로그램 서비스의 일반 설정에서 "항상 열기"를 사용하십시오.TL;박사 01 명
Umbraco 8.6
true
에 새로운 keepAlive
구성이 도입되어 두 속성을 변경할 수 있습니다.keepAlivePingUrl: Ping의 URL을 변경하여 Umbraco 인스턴스를 활성화합니다.기본값은
umbracoSettings.config
입니다.disableKeepAliveTask: KeepAlive time interval 작업을true로 설정하여 작업을 비활성화합니다.기본값은
"{umbracoApplicationUrl}/api/keepalive/ping"
입니다.Reference
이 문제에 관하여(Umbraco의 Keepalive Ping 구성 설명), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/swimburger/introducing-umbraco-s-keepalive-ping-configuration-2552텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)