Skip to content

Commit

Permalink
updated links and added anchors
Browse files Browse the repository at this point in the history
  • Loading branch information
Leslie Lundquist committed Apr 5, 2019
1 parent 65670c2 commit 4f68502
Show file tree
Hide file tree
Showing 24 changed files with 317 additions and 164 deletions.
3 changes: 2 additions & 1 deletion about-https.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

copyright:
years: 2018, 2019
lastupdated: "2019-02-25"
lastupdated: "2019-04-03"

keywords: wildcard certificate, https, san certificate

Expand Down Expand Up @@ -36,6 +36,7 @@ IBM Cloud CDN uses the Wildcard certificate `*.cdnedge.bluemix.net`. The CNAME,
![Diagram for Http and Wildcard](images/state-diagram-wildcard.png)

## Subject Alternate Name (SAN) Certificate Support
{: #san-certificate-suport}

Subject Alternative Name (SAN) Certificate is a digital SSL certificate that allows multiple domains, or hostnames, to be protected by a single certificate.

Expand Down
9 changes: 6 additions & 3 deletions about.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

copyright:
years: 2017, 2018, 2019
lastupdated: "2019-02-25"
lastupdated: "2019-04-03"

keywords: content delivery network, web content, caching, edge servers, streaming content

Expand All @@ -24,12 +24,14 @@ subcollection: CDN
A Content Delivery Network (CDN) is a collection of edge servers that are distributed through various parts of the country or the world. Web content is served from an edge server, which is located in the geographic area closest to the customer who requests the content. This technique lets your end-users receive the content with less delay, and it delivers a better overall experience for your customers.

## How does a CDN work?
{: #how-does-a-cdn-work}

A CDN achieves its purpose by caching web content on edge servers around the world. When a customer requests web content, the content request is routed to the edge server that is geographically closest to that customer. By reducing the distance the content must travel, the CDN offers optimized throughput, minimized latency, and increased performance. Using IBM Cloud Content Delivery Network with Akamai, content providers can realize efficient delivery of requested content from around the globe, with minimal configuration.
A CDN achieves its purpose by caching web content on edge servers around the world. When a customer requests web content, the content request is routed to the edge server that is geographically closest to that customer. By reducing the distance the content must travel, the CDN offers optimized throughput, minimized latency, and increased performance. Using {{site.data.keyword.cloud}} Content Delivery Network with Akamai, content providers can realize efficient delivery of requested content from around the globe, with minimal configuration.

![High level CDN diagram](images/high-level-cdn-diagram.png)

## Features
{: #features}

The key features of the {{site.data.keyword.cloud}} Content Delivery Network service include:
* Host Server Origin support
Expand All @@ -49,9 +51,10 @@ The key features of the {{site.data.keyword.cloud}} Content Delivery Network ser
* Geographical Access Control
* Hotlink Protection

Please see [the feature descriptions document](/docs/infrastructure/CDN/feature-descriptions.html#feature-descriptions) for full feature descriptions.
Please see [the feature descriptions document](/docs/infrastructure/CDN?topic=CDN-feature-descriptions) for full feature descriptions.

## Architectural Diagram
{: #architectural-diagram}

The following diagram offers a schematic overview of the three-tier architecture of IBM Cloud CDN.

Expand Down
114 changes: 67 additions & 47 deletions api.md

Large diffs are not rendered by default.

33 changes: 22 additions & 11 deletions basic-functions.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

copyright:
years: 2018, 2019
lastupdated: "2019-02-25"
lastupdated: "2019-04-03"

keywords: running status, additional steps, stop cdn, learn, configure cname, delete cdn, start cdn

Expand All @@ -16,6 +16,8 @@ subcollection: CDN
{:pre: .pre}
{:screen: .screen}
{:tip: .tip}
{:note: .note}
{:important: .important}
{:download: .download}

# Getting your CDN to Running Status
Expand All @@ -24,6 +26,7 @@ subcollection: CDN
Learn how to get your CDN to a RUNNING state by following these guidelines. This document also tells you how to start and stop your CDN.

## Get to Running
{: #get-to-running}

Once you've created a CDN, it appears on your CDN dashboard. Here you'll see the name of your CDN, the Origin, the Provider, and the status.

Expand Down Expand Up @@ -55,10 +58,12 @@ When the CNAME chaining is complete, selecting **Get Status** will change the st
Congratulations! Your CDN is now running. From here, the [Manage your CDN](/docs/infrastructure/CDN/how-to.html#manage-your-cdn) page has additional information on configuring options, such as [Time to Live](/docs/infrastructure/CDN/how-to.html#setting-content-caching-time-using-time-to-live-), [Purging Cached Content](/docs/infrastructure/CDN/how-to.html#purging-cached-content), and [Adding Origin Path details](/docs/infrastructure/CDN/how-to.html#adding-origin-path-details).

## Starting CDN
{: #starting-cdn}

Starting your CDN informs the DNS to direct traffic from your origin to the Akamai edge server. Once the mapping is started, the DNS cache may still direct traffic to the origin so the functionality may not be seen by the domain immediately after the mapping is started. The time it takes to update depends on how often the DNS cache is refreshed, and varies depending on your DNS provider.

**NOTE**: A CDN can be started only when in `Stopped` status
A CDN can be started only when it is in `Stopped` status.
{: note}

**Step 1:**

Expand All @@ -68,7 +73,7 @@ Click **Start CDN** from the Overflow menu, which appears as three dots to the r

**Step 2:**

A larger dialog window appears, asking to confirm that you want to start the service. Select **Confirm** to Proceed.
A larger dialog window appears, asking to confirm that you want to start the service. Select **Confirm** to proceed.

**Step 3:**

Expand All @@ -82,13 +87,16 @@ This step changes the Status to `CNAME Configuration`

Click **Get Status** from Overflow menu. This step changes the status to `Running`. Your CDN becomes operational.

## Stopping CDN
## Stopping a CDN
{: #stopping-a-cdn}

Stopping a CDN is **NOT** recommended for a CDN configured with an HTTPS SAN Certificate, because HTTPS traffic may not work when you move the CDN back to `Running` status.
{: important}

Once a mapping is stopped, the DNS lookup is switched to the origin. Traffic skips the CDN edge servers and content is fetched directly from the origin. After a mapping is stopped, there may be a brief period of time where your content is not accessible. This is because the DNS cache may still be directing traffic to the Akamai edge servers. However, during this time, the Akamai edge server will deny traffic for the domain. How long this period lasts depends on how often the DNS cache is refreshed, and varies depending on your DNS provider.

**NOTES**:
* Stopping CDN is **NOT** recommended for a CDN configured with an HTTPS SAN Certificate, because HTTPS traffic may not work when you move the CDN back to `Running` status.
* A CDN can be stopped only when in `Running` state.
A CDN can be stopped only when in `Running` state.
{: note}

**Step 1:**

Expand All @@ -97,17 +105,19 @@ Click 'Stop CDN' from the Overflow menu (3 vertical dots to the right of the CDN

**Step 2:**

A larger dialog window appears, asking you to confirm that you want to stop the service. Select **Confirm** to Proceed.
A larger dialog window appears, asking you to confirm that you want to stop the service. Select **Confirm** to proceed.

**Step 3:**

After about 5 to 15 seconds, the status should change to 'Stopped'

## Deleting CDN
## Deleting a CDN
{: #deleting-a-cdn}

To delete a CDN follow these steps:

**NOTE**: Selecting `Delete` from the overflow menu only deletes the CDN; it does not delete your account.
Selecting `Delete` from the overflow menu only deletes the CDN; it does not delete your account.
{: note}

**Step 1:**

Expand All @@ -119,7 +129,8 @@ Click 'Delete' from the overflow menu.

A larger dialog window appears, asking to confirm that you want to delete. Click **Delete** to proceed.

**NOTE**: If your CDN is configured using HTTPS with DV SAN Certificate, it may take up to 5 hours to complete the delete process.
If your CDN is configured using HTTPS with DV SAN Certificate, it may take up to 5 hours to complete the delete process.
{: note}

![Delete with Warning](images/delete-with-warning.png)

Expand Down
20 changes: 15 additions & 5 deletions cdn-example-code.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

copyright:
years: 2017, 2018, 2019
lastupdated: "2019-02-25"
lastupdated: "2019-04-03"

keywords: code examples, example API calls, CDN API
keywords: code examples, example API calls, CDN API, Soap, client, apiKey

subcollection: CDN

Expand All @@ -16,6 +16,8 @@ subcollection: CDN
{:pre: .pre}
{:screen: .screen}
{:tip: .tip}
{:note: .note}
{:important: .important}
{:download: .download}

# Code Examples Using the CDN API
Expand All @@ -24,10 +26,11 @@ subcollection: CDN
This document contains example API calls and the resulting output for numerous CDN APIs.

## General steps needed for all API calls
{: #general-steps-needed-for-all-api-calls}

The pre-requisite is to download and install the Soap Client from [https://github.com/softlayer/softlayer-api-php-client ![External link icon](../../icons/launch-glyph.svg "External link icon")](https://github.com/softlayer/softlayer-api-php-client)

* You need to get access to the SoapClient via `vendor/autoload`. The path is relative to where the script is run from and may need to be modified appropriately. In PHP the statement will look similar to this: `require_once './../vendor/autoload.php';`
* You must get access to the SoapClient via `vendor/autoload`. The path is relative to where the script is run from and may need to be modified appropriately. In PHP the statement will look similar to this: `require_once './../vendor/autoload.php';`

```php
require_once __DIR__.'/vendor/autoload.php';
Expand All @@ -42,6 +45,7 @@ The pre-requisite is to download and install the Soap Client from [https://githu
* Initialize SoapClient for the appropriate class.

## Example Code for Listing Vendors
{: #example-code-for-listing-vendors}

In this case, it is the SoftLayer_Network_CdnMarketplace_Vendor class which defines the `listVendors` API and must be passed as a parameter to `\SoftLayer\SoapClient::getClient()`. You will need the name of an active vendor later, when you create a Domain Mapping

Expand Down Expand Up @@ -75,6 +79,7 @@ Array
{: codeblock}

## Example Code to Verify Order
{: #example-code-to-verify-order}

The call to `verifyOrder` is not mandatory prior to placing an order, but it is recommended. It can be used to verify that a subsequent call to `placeOrder` will be successful. More information about `verifyOrder` can be found in the [SoftLayer API documentation ![External link icon](../../icons/launch-glyph.svg "External link icon")](https://softlayer.github.io/reference/services/SoftLayer_Product_Order/verifyOrder/).

Expand Down Expand Up @@ -130,6 +135,7 @@ catch (\Exception $e) {


## Example code to Place Order
{: #example-code-to-place-order}

This API call is identical to the previous code example, except it calls `placeOrder`, rather than `verifyOrder.` More information about `placeOrder` can be found in the [SoftLayer API documentation ![External link icon](../../icons/launch-glyph.svg "External link icon")](https://softlayer.github.io/reference/services/SoftLayer_Product_Order/placeOrder/).

Expand Down Expand Up @@ -184,10 +190,12 @@ catch (\Exception $e) {


## Example code to create CDN or Create Domain Mapping
{: #example-code-to-create-cdn-or-create-domain-mapping}

This example shows you how to create a new CDN mapping using the `createDomainMapping` API. It takes a single parameter of a `stdClass` object. The SoapClient should be initialized using the `SoftLayer_Network_CdnMarketplace_Configuration_Mapping` class as shown in the example.

**NOTE**: if you choose to provide a custom CNAME, it **must** end with `.cdnedge.bluemix.net` or an error will be thrown. See [this description](/docs/infrastructure/CDN/rules-and-naming-conventions.html#what-are-the-custom-cname-naming-conventions-) for rules on providing your own CNAME.
If you choose to provide a custom CNAME, it **must** end with `.cdnedge.bluemix.net` or an error will be thrown. See [this description](/docs/infrastructure/CDN/rules-and-naming-conventions.html#what-are-the-custom-cname-naming-conventions-) for rules on providing your own CNAME.
{: important}

```php

Expand Down Expand Up @@ -264,6 +272,7 @@ Array
{: codeblock}

## Example Code to Verify Domain Mapping
{: #example-code-to-verify-domain-mapping}

VerifyDomainMapping checks if the CNAME configuration is complete and if so, moves the CDN status to RUNNING status. Before calling `verifyDomainMapping`, you must add a CNAME record of the custom Hostname to your DNS server.

Expand Down Expand Up @@ -310,7 +319,8 @@ If your CNAME record has been added to your DNS server, the `status` of your CDN

If your CNAME record has not been added to your DNS server, or your server has not yet updated, the `status` of your CDN will be CNAME_CONFIGURATION, as shown in the following example.

**Note** It may take several minutes (up to 30) for the CNAME chaining to complete.
It may take several minutes (up to 30) for the CNAME chaining to complete.
{: note}

```php
Array
Expand Down
7 changes: 4 additions & 3 deletions control-http-client-cache-duration.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

copyright:
years: 2017, 2018, 2019
lastupdated: "2019-04-01"
lastupdated: "2019-04-04"

keywords: cache control, cache-control, cache duration, max-age, edge server, edge-level, respect header, HTTP client

Expand All @@ -28,7 +28,7 @@ When using a CDN, two levels of caching are available:

The method you choose to control how long content is cached at the requester, such as a browser, depends on the following factors:

* Whether the [Respect Header setting](/docs/infrastructure/CDN/how-to.html#updating-cdn-configuration-details) is ON or OFF. By default it is set to ON.
* Whether the [Respect Header setting](/docs/infrastructure/CDN?topic=CDN-manage-your-cdn#updating-cdn-configuration-details) is ON or OFF. By default it is set to ON.
* Whether the origin server provides a `max-age` value in the Cache-Control header for a particular piece of content.

Regardless of how these factors change, your origin must provide a Cache-Control header for the intended content to the edge, if you want edge servers to send HTTP responses with the Cache-Control header for that content.
Expand All @@ -52,6 +52,7 @@ If your origin does provide a Cache-Control header with `max-age` for a specific
However, if your origin does not provide a Cache-Control header to the edge server, then the edge server will not provide a Cache-Control header to the requester. The edge cache duration for your content is still derived from your CDN's TTL Settings.

## Summary
{: #summary}

|Respect Header|Origin Provides Cache-Control|Specific Content's Cache Duration on Edge Server|Edge Server Provides Cache-Control|
|---|---|---|---|
Expand All @@ -65,5 +66,5 @@ However, if your origin does not provide a Cache-Control header to the edge serv
## More information on cache control
{: #more-information-on-cache-control}

* How to [manage your CDN](/docs/infrastructure/CDN/how-to.html)
* How to [manage your CDN](/docs/infrastructure/CDN?topic=CDN-manage-your-cdn)
* Cache-Control as defined in section 14.9 of [RFC 2616 ![External link icon](../../icons/launch-glyph.svg "External link icon")](https://www.ietf.org/rfc/rfc2616.txt)
Loading

0 comments on commit 4f68502

Please sign in to comment.