创建静态网站

创建静态网站

如需查看对象存储系统是否支持该特性,请参考 可发现性. 或者与你的服务提供商确认。

可以使用对象存储的账户来创建静态网站。此静态网站是使用静态Web中间件创建的,并提供具有指定索引文件,错误文件解析和可选文件列表的容器数据。此模式通常仅对不提供身份验证令牌的匿名请求有效。 要使用已验证的请求,请在请求中将标题``X-Web-Mode``设置为``TRUE``。

静态Web筛选器必须添加到位于``/ etc / swift / proxy-server.conf``文件中且位于任何认证中间件下面的管道中。 还必须添加静态Web中间件的配置部分。

See the Cloud Administrator Guide for an example of the static web configuration syntax.

See the Cloud Administrator Guide for a complete example of the /etc/swift/proxy-server.conf file (including static web).

公开可读的容器被检查两个头部,X-Container-Meta-Web-Index``和``X-Container-Meta-Web-Error。头部``X-Container-Meta-Web-Error``在下面名为:ref:`set_error_static_website`的部分进行讨论。

使用``X-Container-Meta-Web-Index``来确定网站的索引文件(或者提供的默认页面,如``index.html``)。当有人最初进入网站时,``index.html``文件会自动显示。 如果通过在容器中创建伪目录来为站点创建子目录,则默认情况下会显示每个子目录的索引页。 如果伪目录没有与索引文件同名的文件,则访问子目录会返回404错误。

你也可以选择显示一个在伪目录里的文件列表而不是显示web页面。要使用此配置,请设置 X-Container-Meta-Web-Listings 标题为``TRUE``。你可以为列出的文件增加样式,通过设置``X-Container-Meta-Web-Listings-CSS``为一个样式表(例如:lists.css)。

通过对象存储的静态Web中间件

以下部分显示如何通过对象存储使用静态Web中间件。

使容器公开可读

使容器公开可读。一旦容器公开可读,你可以直接访问你的对象,但是必须设置索引文件来浏览主URL地址和它的子目录。

$ swift post -r '.r:*,.rlistings' container

设置站点索引文件

“index.html”是当网站载入时默认的展示文件,既然如此,请设置index文件。

$ swift post -m 'web-index:index.html' container

启用文件列表

打开文件列表。 如果不设置索引文件,则URL将显示容器中的对象列表。 下面是使用CSS对列表进行样式化的说明。

$ swift post -m 'web-listings: true' container

启用CSS文件列表

使用CSS对文件列表进行格式化。

$ swift post -m 'web-listings-css:listings.css' container

为静态网站设置错误页面

可以为网站的访问者创建和设置自定义错误页面;目前仅支持401(未授权)和404(未找到)错误。为此,设置元数据头部,X-Container-Meta-Web-Error

错误页面的状态代码预先设置为设置的错误页面的名称。例如,如果将``X-Container-Meta-Web-Error``设置为``error.html``,则401错误将显示页面``401error.html``。同样,404错误将显示``404error.html``。在设置``X-Container-Meta-Web-Error``元数据时,必须在容器中创建这两个页面,否则站点将显示常规错误页面。

只需为整个静态网站设置``X-Container-Meta-Web-Error``元数据一次。

为静态网址请求设置错误页面。

$ swift post -m 'web-error:error.html' container

任何2``nn``响应表示成功。

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.