App Service 앱 구성

이 문서에서는 웹앱, 모바일 백 엔드 또는 API 앱에 대한 일반 설정을 구성하는 방법을 설명합니다. Azure Functions의 경우 Azure Functions에 대한 앱 설정 참조를 참조하세요.

앱 설정 구성

참고 항목

  • 앱 설정 이름에는 문자, 숫자(0-9), 마침표(".") 및 밑줄("_")만 포함될 수 있습니다.
  • 앱 설정 값의 특수 문자는 대상 OS에서 필요에 따라 이스케이프해야 합니다.

예를 들어 App Service Linux에서 앱 설정에 대한 문자열 값 "pa$$w0rd\" 으로 환경 변수를 설정하려면 다음을 수행해야 합니다. "pa\$\$w0rd\\"

App Service에서 앱 설정은 애플리케이션 코드에 환경 변수로 전달되는 변수입니다. Linux 앱 및 사용자 지정 컨테이너의 경우, App Service는 --env 플래그를 사용하여 컨테이너에 앱 설정을 전달하고 컨테이너에서 환경 변수를 설정합니다. 두 경우 모두 앱 시작 시 앱 환경에 삽입됩니다. 앱 설정을 추가, 제거 또는 편집하면 App Service에서 앱 다시 시작을 트리거합니다.

ASP.NET 및 ASP.NET Core 개발자의 경우, App Service에서 앱 설정을 설정하는 것은 Web.config 또는 appsettings.json<appSettings>에서 설정하는 것과 같지만 App Service의 값이 Web.config 또는 appsettings.json의 값을 재정의합니다. Web.config 또는 appsettings.json에서 개발 설정(예: 로컬 MySQL 암호) 및 프로덕션 비밀(예: Azure MySQL 데이터베이스 암호)을 App Service 내에 안전하게 보관할 수 있습니다. 로컬에서 디버그할 때 동일한 코드가 개발 설정을 사용하고 Azure에 배포될 때 프로덕션 비밀을 사용합니다.

다른 언어 스택도 마찬가지로 런타임에 환경 변수로 앱 설정을 가져옵니다. 언어 스택별 단계는 다음을 참조하세요.

앱 설정은 저장될 때 항상 암호화됩니다(미사용 암호화).

참고 항목

Key Vault 참조를 사용하여 Key Vault에서 앱 설정을 확인할 수도 있습니다.

  1. Azure Portal에서 App Services를 검색하여 선택한 다음, 앱을 선택합니다.

    Search for App Services

  2. 앱의 왼쪽 메뉴에서 구성>애플리케이션 설정을 선택합니다.

    Application Settings

    기본값으로 앱 설정의 값은 보안을 위해 포털에서 숨겨집니다. 앱 설정의 숨겨진 값을 보려면 해당 필드를 선택합니다. 모든 앱 설정의 숨겨진 값을 보려면 값 표시 단추를 선택합니다.

  3. 새 앱 설정을 추가하려면 새 애플리케이션 설정을 선택합니다. 설정을 편집하려면 오른쪽에 있는 편집 단추를 선택합니다.

  4. 대화 상자에서 설정을 현재 슬롯에 고정할 수 있습니다.

    참고 항목

    기본 Linux 앱 서비스 또는 사용자 지정 Linux 컨테이너에서, ApplicationInsights:InstrumentationKey과 같은 앱 설정 이름의 중첩된 JSON 키 구조체는 App Service에서 키 이름으로 ApplicationInsights__InstrumentationKey로 구성해야 합니다. 즉, 모든 :__로(밑줄 두개)로 대체해야 합니다. 앱 설정 이름의 모든 마침표는 (단일 밑줄)로 _ 바뀝니다.

  5. 작업을 마쳤으면 업데이트를 선택합니다. 구성 페이지에서 다시 저장을 선택해야 합니다.

앱 설정을 대량으로 편집

고급 편집 단추를 선택합니다. 텍스트 영역에서 설정을 편집합니다. 작업을 마쳤으면 업데이트를 선택합니다. 구성 페이지에서 다시 저장을 선택해야 합니다.

앱 설정에는 다음과 같은 JSON 형식이 있습니다.

[
  {
    "name": "<key-1>",
    "value": "<value-1>",
    "slotSetting": false
  },
  {
    "name": "<key-2>",
    "value": "<value-2>",
    "slotSetting": false
  },
  ...
]

연결 문자열 구성

Azure Portal에서 App Services를 검색하여 선택한 다음, 앱을 선택합니다. 앱의 왼쪽 메뉴에서 구성>애플리케이션 설정을 선택합니다.

Application Settings

ASP.NET 및 ASP.NET Core 개발자의 경우 App Service에서 연결 문자열 설정하는 것은 Web.config에서 <connectionStrings>설정하는 것과 비슷하지만 App Service에서 설정한 값은 Web.config의 값을 재정의합니다. 개발 설정(예: 데이터베이스 파일)을 Web.config에 유지하고 프로덕션 비밀(예: SQL Database 자격 증명)을 App Service에서 안전하게 유지할 수 있습니다. 로컬에서 디버그할 때 동일한 코드가 개발 설정을 사용하고 Azure에 배포될 때 프로덕션 비밀을 사용합니다.

다른 언어 스택의 경우, 연결 문자열이 값에 액세스하기 위해 변수 키에 특별한 서식이 필요하기 때문에 앱 설정을 사용하는 것이 좋습니다.

참고 항목

non-.NET 언어에 대한 앱 설정 대신 연결 문자열 사용할 수 있는 한 가지 경우가 있습니다. 특정 Azure 데이터베이스 유형은 App Service 앱에서 데이터베이스에 대한 연결 문자열 구성하는 경우에만과 함께 백업됩니다. 자세한 내용은 사용자 지정 백업 만들기를 참조하세요. 이 자동화된 백업이 필요하지 않은 경우 앱 설정을 사용합니다.

런타임에 연결 문자열 환경 변수로 사용할 수 있으며, 접두사는 다음 연결 형식입니다.

  • Sqlserver: SQLCONNSTR_
  • Mysql: MYSQLCONNSTR_
  • SQLAzure: SQLAZURECONNSTR_
  • 주문: CUSTOMCONNSTR_
  • Postgresql: POSTGRESQLCONNSTR_

예를 들어 MySQL 연결 문자열 이름이 connectionstring1로 지정된 경우 환경 변수 MYSQLCONNSTR_connectionString1을 통해 액세스될 수 있습니다. 언어 스택별 단계는 다음을 참조하세요.

연결 문자열은 저장될 때 항상 암호화됩니다(미사용 암호화).

참고 항목

커넥트ion 문자열은 Key Vault 참조를 사용하는 Key Vault입니다.

  1. Azure Portal에서 App Services를 검색하여 선택한 다음, 앱을 선택합니다.

    Search for App Services

  2. 앱의 왼쪽 메뉴에서 구성>애플리케이션 설정을 선택합니다.

    Application Settings

    기본적으로 연결 문자열 값은 보안을 위해 포털에 숨겨집니다. 연결 문자열 숨겨진 값을 보려면 해당 필드를 선택합니다. 모든 연결 문자열 숨겨진 값을 보려면 값 표시 단추를 선택합니다.

  3. 새 연결 문자열 추가하려면 새 연결 문자열 선택합니다. 연결 문자열 편집하려면 오른쪽에 있는 편집 단추를 선택합니다.

  4. 대화 상자에서 연결 문자열을 현재 슬롯에 고정할 수 있습니다.

  5. 작업을 마쳤으면 업데이트를 선택합니다. 구성 페이지에서 다시 저장을 선택해야 합니다.

대량으로 연결 문자열 편집

고급 편집 단추를 선택합니다. 텍스트 영역에서 연결 문자열을 편집합니다. 작업을 마쳤으면 업데이트를 선택합니다. 구성 페이지에서 다시 저장을 선택해야 합니다.

커넥트ion 문자열에는 다음과 같은 JSON 서식이 있습니다.

[
  {
    "name": "name-1",
    "value": "conn-string-1",
    "type": "SQLServer",
    "slotSetting": false
  },
  {
    "name": "name-2",
    "value": "conn-string-2",
    "type": "PostgreSQL",
    "slotSetting": false
  },
  ...
]

언어 스택 설정 구성

일반 설정 구성

Azure Portal에서 App Services를 검색하여 선택한 다음, 앱을 선택합니다. 앱의 왼쪽 메뉴에서 구성>일반 설정을 선택합니다.

General settings

여기에서 앱에 대한 몇 가지 일반 설정을 구성할 수 있습니다. 일부 설정에서는 더 높은 가격 책정 계층으로 확장해야 합니다.

  • 스택 설정: 언어 및 SDK 버전을 포함하여 앱을 실행할 소프트웨어 스택입니다.

    Linux 앱의 경우, 언어 런타임 버전을 선택하고 선택적 시작 명령 또는 시작 명령 파일을 설정할 수 있습니다.

    General settings for Linux containers

  • 플랫폼 설정: 다음을 포함하여 호스팅 플랫폼에 대한 설정을 구성할 수 있습니다.

    • 플랫폼 비트: 32비트 또는 64비트. Windows 앱에만 해당합니다.
    • FTP 상태: FTPS만 허용하거나 FTP를 모두 사용하지 않도록 설정합니다.
    • HTTP 버전: HTTPS/2 프로토콜에 대한 지원을 사용하도록 설정하려면 2.0으로 설정합니다.

    참고 항목

    대부분의 최신 브라우저는 TLS를 통한 HTTP/2 프로토콜만 지원하지만 암호화되지 않은 트래픽은 HTTP/1.1을 계속 사용합니다. 클라이언트 브라우저가 HTTP/2를 사용하여 앱에 연결되도록 하려면 사용자 지정 DNS 이름을 보호합니다. 자세한 내용은 Azure App Service에서 TLS/SSL 바인딩으로 사용자 지정 DNS 이름 보호를 참조하세요.

    • 웹 소켓: 예를 들어 ASP.NET SignalR 또는 socket.io.

    • Always On: 트래픽이 없는 경우에도 앱을 로드된 상태에서 유지합니다. Always On이 설정되지 않은 경우(기본값) 들어오는 요청 없이 20분 후에 앱이 언로드됩니다. 언로드된 앱은 준비 시간 때문에 새 요청에 대해 대기 시간이 길어질 수 있습니다. Always On이 켜지면 프런트 엔드 부하 분산 장치는 5분마다 애플리케이션 루트에 GET 요청을 보냅니다. 연속 ping은 앱이 언로드될 수 없도록 방지합니다.

      Always On은 연속 WebJobs 또는 CRON 식을 사용하여 트리거되는 WebJobs에 필요합니다.

    • ARR 선호도: 다중 인스턴스 배포에서 클라이언트가 세션 수명 동안 동일한 인스턴스로 라우팅되는지 확인합니다. 상태 비저장 애플리케이션의 경우 이 옵션을 Off로 설정할 수 있습니다.

    • HTTPS만 해당: 사용하도록 설정하면 모든 HTTP 트래픽이 HTTPS로 리디렉션됩니다.

    • 최소 TLS 버전: 앱에 필요한 최소 TLS 암호화 버전을 선택합니다.

  • 디버깅: ASP.NET, ASP.NET Core 또는 Node.js 앱에 대해 원격 디버깅을 사용하도록 설정합니다. 이 옵션은 48시간 후에 자동으로 해제됩니다.

  • 들어오는 클라이언트 인증서: 상호 인증클라이언트 인증서가 필요합니다.

기본 문서 구성

이 설정은 Windows 앱에만 해당됩니다.

기본 문서는 App Service 앱의 루트 URL에 표시되는 웹 페이지입니다. 목록에서 일치하는 첫 번째 파일이 사용됩니다. 앱에서 정적 콘텐츠를 제공하는 대신 URL을 기반으로 라우팅하는 모듈을 사용하는 경우 기본 문서가 필요하지 않습니다.

  1. Azure Portal에서 App Services를 검색하여 선택한 다음, 앱을 선택합니다.

  2. 앱의 왼쪽 메뉴에서 구성>기본 문서를 선택합니다.

    Default documents

  3. 기본 문서를 추가하려면 새 문서를 선택합니다. 기본 문서를 제거하려면 오른쪽에 있는 삭제를 선택합니다.

디렉터리에 URL 경로 매핑

기본적으로 App Service는 앱 코드의 루트 디렉터리에서 앱을 시작합니다. 그러나 특정 웹 프레임워크는 루트 디렉터리에서 시작되지 않습니다. 예를 들어 Laravel 은 하위 디렉터리에서 public 시작합니다. 예를 들어 이러한 앱은 http://contoso.com/public에서 액세스할 수 있지만 일반적으로 대신 http://contoso.compublic 디렉터리로 지정하려고 합니다. 앱의 시작 파일이 다른 폴더에 있거나 리포지토리에 둘 이상의 애플리케이션이 있는 경우 가상 애플리케이션 및 디렉터리를 편집하거나 추가할 수 있습니다.

Important

실제 경로 기능에 대한 가상 디렉터리를 Windows 앱에서만 사용할 수 있습니다.

  1. Azure Portal에서 App Services를 검색하여 선택한 다음, 앱을 선택합니다.

  2. 앱의 왼쪽 메뉴에서 구성>경로 매핑을 선택합니다.

  3. 새 가상 애플리케이션 또는 디렉터리를 선택합니다.

    • 가상 디렉터리를 실제 경로에 매핑하려면 디렉터리 검사 상자를 선택한 상태로 둡니다. 웹 사이트 루트()에 대한 가상 디렉터리 및 해당 상대(D:\home물리적) 경로를 지정합니다.
    • 가상 디렉터리를 웹 애플리케이션으로 표시하려면 디렉터리 확인란의 선택을 취소합니다.

    Directory check box

  4. 확인을 선택합니다.

처리기 매핑 구성

Windows 앱의 경우 IIS 처리기 매핑과 가상 애플리케이션 및 디렉터리를 사용자 지정할 수 있습니다. 처리기 매핑을 사용하면 특정 파일 확장명에 대한 요청을 처리하는 사용자 지정 스크립트 프로세서를 추가할 수 있습니다.

사용자 지정 처리기를 추가하려면 다음을 수행합니다.

  1. Azure Portal에서 App Services를 검색하여 선택한 다음, 앱을 선택합니다.

  2. 앱의 왼쪽 메뉴에서 구성>경로 매핑을 선택합니다.

    Path mappings

  3. 새 처리기 매핑을 선택합니다. 다음과 같이 처리기를 구성합니다.

    • 확장. *.php 또는 handler.fcgi와 같이 처리하려는 파일 확장.
    • 스크립트 프로세서입니다. 스크립트 프로세서의 절대 경로입니다. 파일 확장명과 일치하는 파일에 대한 요청이 스크립트 프로세서에서 처리됩니다. 경로 D:\home\site\wwwroot 를 사용하여 앱의 루트 디렉터리를 참조합니다.
    • 인수입니다. 스크립트 프로세서에 대한 선택적 명령줄 인수입니다.
  4. 확인을 선택합니다.

사용자 지정 컨테이너 구성

다음 단계