영어로 읽기

다음을 통해 공유


웹 사이트 리소스

웹 사이트는 요청을 처리할 위치와 방법을 결정하는 IIS의 핵심 엔터티입니다. 웹 사이트 API를 사용하면 소비자가 웹 사이트를 만들거나, 읽고, 삭제하거나, 업데이트할 수 있습니다. 자동화된 배포를 스크립팅하거나 기존 리소스를 변경하는 데 적합합니다.

get/api/webserver/websites/{id}

{
    "name": "Default Web Site",
    "id": "{id}",
    "physical_path": "%SystemDrive%\\inetpub\\wwwroot",
    "key": "1",
    "status": "started",
    "server_auto_start": "true",
    "enabled_protocols": "http",
    "limits": {
        "connection_timeout": "120",
        "max_bandwidth": "4294967295",
        "max_connections": "4294967295",
        "max_url_segments": "32"
    },
    "bindings": [
        {
            "protocol": "https",
            "binding_information": "*:443:",
            "ip_address": "*",
            "port": "443",
            "hostname": "",
            "certificate": {
                "name": "Web Hosting Certificate",
                "id": "{certificate_id}",
                "issued_by": "CN=localhost",
                "subject": "CN=localhost",
                "thumbprint": "2F6C0E796B8DAC4A1DDBF59F1714A19D9520B88A",
                "valid_to": "2022-01-09T00:00:00Z"
            },
            "require_sni": "false"
        },
        {
            "protocol": "http",
            "binding_information": "*:80:",
            "ip_address": "*",
            "port": "80",
            "hostname": ""
        },
        {
            "protocol": "net.tcp",
            "binding_information": "808:*"
        }
    ],
    "application_pool": {
        "name": "DefaultAppPool",
        "id": "{application_pool_id}",
        "status": "started"
    },
    "_links": {
        "authentication": {
            "href": "/api/webserver/authentication/{authentication_id}"
        },
        "authorization": {
            "href": "/api/webserver/authorization/{authorization_id}"
        },
        "default_document": {
            "href": "/api/webserver/default-documents/{default_document_id}"
        },
        "delegation": {
            "href": "/api/webserver/feature-delegation?website.id={id}"
        },
        "directory_browsing": {
            "href": "/api/webserver/directory-browsing/{directory_browsing_id}"
        },
        "files": {
            "href": "/api/webserver/files/{files_id}"
        },
        "handlers": {
            "href": "/api/webserver/http-handlers/{handlers_id}"
        },
        "ip_restrictions": {
            "href": "/api/webserver/ip-restrictions/{ip_restrictions_id}"
        },
        "logging": {
            "href": "/api/webserver/logging/{logging_id}"
        },
        "modules": {
            "href": "/api/webserver/http-modules/{modules_id}"
        },
        "request_filtering": {
            "href": "/api/webserver/http-request-filtering/{request_filtering_id}"
        },
        "request_monitor": {
            "href": "/api/webserver/http-request-monitor/requests?website.id={request_monitor_id}"
        },
        "request_tracing": {
            "href": "/api/webserver/http-request-tracing/{request_tracing_id}"
        },
        "response_compression": {
            "href": "/api/webserver/http-response-compression/{response_compression_id}"
        },
        "response_headers": {
            "href": "/api/webserver/http-response-headers/{response_headers_id}"
        },
        "ssl": {
            "href": "/api/webserver/ssl-settings/{ssl_id}"
        },
        "static_content": {
            "href": "/api/webserver/static-content/{static_content_id}"
        },
        "vdirs": {
            "href": "/api/webserver/virtual-directories?website.id={id}"
        },
        "webapps": {
            "href": "/api/webserver/webapps?website.id={id}"
        }
    }
}

웹 사이트 바인딩

웹 사이트의 바인딩은 사이트에서 수신 대기할 포트, 프로토콜 및 호스트 이름을 결정합니다. 적어도 바인딩은 프로토콜, IP 추가 주소 및 포트를 지정해야 합니다. binding_information 속성을 사용하여 IP 주소, 포트 및 호스트 이름을 지정할 수 있습니다. binding_information 형식은 HTTP 및 HTTPS 프로토콜의 경우 '{ip_address}:{port}:{hostname}'입니다. HTTPS 바인딩에는 인증서가 필요합니다.

웹 사이트 만들기

웹 사이트를 만들려면 웹 사이트를 저장할 실제 경로, 웹 사이트의 이름 및 웹 사이트에서 수신 대기해야 하는 바인딩 집합이 필요합니다.

HTTP 사용 웹 사이트 만들기

포트 8081에서 수신 대기하는 웹 사이트 만들기 POST/api/webserver/websites

{
    "name": "Demonstration Site",
    "physical_path": "C:\\inetpub\\wwwroot\\DemonstrationSite",
    "bindings": [
        {
            "protocol": "HTTP",
            "port": "8081",
            "ip_address": *
        }
    ]
}

HTTPS 사용 웹 사이트 만들기

HTTPS 바인딩을 사용하여 사이트를 만들려면 바인딩 개체에 인증서를 제공해야 합니다. 인증서는 /api/certificates 엔드포인트를 통해 사용할 수 있는 리소스입니다. 바인딩에서 원하는 인증서를 지정하려면 아래와 같이 인증서 리소스를 추가하고 인증서 ID 지정합니다.

포트 8082에서 HTTPS 요청을 수신 대기하는 웹 사이트를 만듭니다. POST/api/webserver/websites

{
    "name": "Demonstration Site",
    "physical_path": "C:\\inetpub\\wwwroot\\DemonstrationSite",
    "bindings": [
        {
            "protocol": "HTTPS",
            "port": "8082",
            "ip_address": *,
            "certificate": {
                "id": {certificate_id}
            }
        }
    ]
}

특정 애플리케이션 풀에서 만들기

웹 사이트를 만들어야 하는 애플리케이션 풀을 지정하려면 요청 본문에 application_pool 속성을 추가합니다. 애플리케이션 풀은 id 속성으로만 식별됩니다.

특정 애플리케이션 풀에 대한 웹 사이트 만들기 POST/api/webserver/websites

{
    "name": "Demonstration Site",
    "physical_path": "C:\\inetpub\\wwwroot\\DemonstrationSite",
    "bindings": [
        {
            "protocol": "HTTP",
            "port": "8081",
            "ip_address": *
        }
    ],
    "application_pool": {
        "id": {application_pool_id}
    }
}

웹 사이트 업데이트

웹 사이트 업데이트는 패치 요청을 통해 수행됩니다. 원하는 상태의 웹 사이트를 사용하여 패치 요청을 보내면 서버의 웹 사이트가 일치하도록 업데이트됩니다.

바인딩 추가

웹 사이트를 업데이트하는 일반적인 이유는 바인딩을 추가하는 것입니다. 예를 들어 포트 80에 단일 바인딩이 있는 웹 사이트가 있으며 포트 8080에서 수신 대기하는 바인딩을 추가하려고 합니다. 원하는 바인딩이 모두 포함된 바인딩 목록이 포함된 패치 요청을 보내야 합니다. 바인딩 속성은 목록이므로 웹 사이트에 이미 있는 바인딩은 손실되지 않도록 요청의 일부로 전송되어야 합니다.

웹 사이트에 바인딩을 추가합니다. PATCH/api/webserver/websites/{id}

{
    "bindings": [
        {
            "protocol": "HTTP",
            "port": "80",
            "ip_address": *
        },
        {
            "protocol": "HTTP",
            "port": "8080",
            "ip_address": *
        }
    ]
}