|
|
> This will require an update after switching the CDN to Rackspace
|
|
|
### Distribution origin at Rackspace Cloud Files
|
|
|
|
|
|
### Distribution origin server: `dist.mathjax.org`
|
|
|
Note: Rackspace Cloud Files is a storage system and does not formally have a directory structure -- but it simulates one (see [here](http://www.rackspace.com/blog/nested-folders-in-rackspace-cloud-files/) for more information). Tools such as [Cyberduck](http://cyberduck.ch) or [FireUploader](http://www.fireuploader.com/) efficiently deal with the files hosted on Cloud Files.
|
|
|
|
|
|
This host is the origin server for cdn.mathjax.org, and will only host release and release candidate code.
|
|
|
|
|
|
Versioning will be accomplished via the following logical directory structure.
|
|
|
The content that is delivered through `cdn.mathjax.org` is located in the container `mathjax` on our CloudFiles account. Versioning will be accomplished via the following logical directory structure.
|
|
|
|
|
|
```
|
|
|
mathjax/ # project-name
|
|
|
mathjax/
|
|
|
1.0-latest/
|
|
|
1.1-beta/ # temporary
|
|
|
1.1-latest/
|
|
|
latest/ # duplicate of 1.1-latest in this example
|
|
|
2.0-latest/
|
|
|
...
|
|
|
latest/
|
|
|
```
|
|
|
|
|
|
Each directory corresponds to an official MathJax release. However, hotfixes (urgent bug fixes) will be applied in each release branch as necessary, even if new releases are not prepared. In other words, 1.1-latest will initially point to v1.1, but over time may be updated with patches that would correspond to releases that might be numbers 1.1a, 1.1b, etc even if such releases are not actually prepared for distribution (they likely won't be).
|
|
|
Each directory corresponds to an official MathJax release. However, hotfixes (urgent bug fixes) will be applied in each release branch as necessary, even if new releases are not prepared. In other words, `2.0-latest` will initially point to the `v2.0` tag, but over time may be updated with patches that would correspond to releases that might be numbers 2.0a, 2.0b, etc **even if such releases are not actually prepared** for distribution (**they likely won't be**).
|
|
|
|
|
|
We may occasionally introduce directories for betas, as indicated above, but they will be temporary, and will be removed after the official release.
|
|
|
|
|
|
|
|
|
### Requirements / Constraints
|
|
|
|
|
|
* Must be able to switch hosting and CDN providers.
|
|
|
* There may be future projects that would be appropriately hosted here.
|
|
|
* Sites that rely on the MathJax CDN will only be able to stick with a `major.minor` branch, e.g. `2.0-latest`. If a site needs to stick with a specific release, even temporarily, then that will need to be installed rather than relying on the CDN.
|
|
|
|
|
|
### Potential issues
|
|
|
|
|
|
* The fonts directory is relatively large (due to the PNG folder), and is currently duplicated in every MathJax release / snapshot. Are there options to reduce this overhead? -> None at this stage but our storage costs are insignificant compared to the delivery costs.
|
|
|
* What Expires (or cache-control) settings are appropriate? None, since only branches - rather than specific releases - are being provided.
|
|
|
* Rackspace currently does not offer compression for eot, otf and woff files (even if browsers could accept them). By log analysis, woff fonts are the dominant form of fonts we deliver (by two orders of magnitude) and they are already compressed. We could manually compress and set content-headers, but there are some problems with older IE version.
|
|
|
|
|
|
We may occasionally introduce directories for betas, as indicated above, but they will be temprorary, and will be removed after the official release.
|
|
|
|
|
|
### Development server: devel.mathjax.org
|
|
|
|
|
|
This could host development versions of MathJax, lowering the barrier to community testing and feedback.
|
|
|
The branches hosted here would probably be temporary. The following is an example only.
|
|
|
The branches hosted here are temporary and may change without warning. The following is an example only.
|
|
|
|
|
|
```
|
|
|
mathjax/ # project-name
|
... | ... | @@ -35,15 +47,16 @@ shogun70/ |
|
|
reflow/
|
|
|
```
|
|
|
|
|
|
### Requirements / Constraints
|
|
|
|
|
|
* Must be able to switch hosting and CDN providers.
|
|
|
* Amazon Cloudfront can only be configured to mirror a whole domain, as opposed to an arbitrary sub-directory which other CDN services (at least Edgecast) can do.
|
|
|
* There may be future projects that would be appropriately hosted here.
|
|
|
* Sites that rely on the MathJax CDN will only be able to stick with a major.minor branch, e.g. 1.1-latest. If a site needs to stick with a specific release, even temporarily, then that will need to be installed rather than relying on the CDN.
|
|
|
### For archival purposes: `dist.mathjax.org`
|
|
|
|
|
|
### Potential issues
|
|
|
This was the origin server for delivery via Amazon CloudFront and followed the same logical directory structure.
|
|
|
|
|
|
```
|
|
|
mathjax/ # project-name
|
|
|
1.0-latest/
|
|
|
1.1-latest/
|
|
|
2.0-latest/
|
|
|
latest/ # duplicate of 2.0-latest
|
|
|
```
|
|
|
|
|
|
* The fonts directory is relatively large, and is currently duplicated in every MathJax release / snapshot. Are there options to reduce this overhead? None at this stage but there aren't enough branches for this to be a significant issue for now.
|
|
|
* What Expires (or cache-control) settings are appropriate? None, since only branches - rather than specific releases - are being provided.
|
|
|
* Should content be gzip'ed even for requests that don't request it? Yes for now - There is a small proportion of end-users who might find MathJax not working - people with early versions of IE6 who are behind a proxy. Possibly this is less significant than the number of people who turn off javascript or run unsupported browsers. |