Apache 和 Nginx 设置

默认,Plesk 使用 Apache web 服务器 (http://en.wikipedia.org/wiki/Apache_HTTP_Server) 向客户提供网页(如访客用来访问您的网站的浏览器)。要获得更好的性能,Apache 可辅以另一款 web 服务器 - nginx。您还可以只使用nginx。

默认 web 服务器设置 由服务器管理员(主机提供商)指定。这些设置可确定 web 服务器处理不同类型文件的方式、使用 SSL/TLS 的方式、日志文件存储的位置,等等。

但是,您(作为网站所有者)可以设置网站的 自定义 web 服务器设置。例如,添加索引文件类型,限制访问网站,等等。

注意: 如果您的主机订阅提供相应的权限时,您可以调整网站的 web 服务器设置。

在本小节:

调整 Apache 和 Nginx 设置

配置 MIME 类型

配置 Apache 处理程序

拒绝访问网站

配置索引文件

配置"Expires" 头

配置其它标头

限制遵循符号链接

仅使用Nginx的主机

配置静态文件处理方式

启用 nginx 缓存

服务器设置的默认值

 
调整 Apache 和 Nginx 设置

Apache 和 nginx 有些设置可以在域名层进行自定义。这些设置位于 网站与域名 > domain name > Apache 与 nginx 设置。这些设置分成两组:

  • 通用 Apache 设置
  • nginx 设置

    apache

 
配置 MIME 类型

MIME 类型 会匹配文件扩展名和文件类型以指令 web 浏览器如何处理某类文件。例如,下面的 MIME 类型

text/plain .txt

指令web 浏览器以纯文本来处理所有的 .txt 文件。默认,已预配置大部分通用 MIME 类型。但是,如果因为您使用带有非标准扩展名的文件,而导致web浏览器无法正确处理您的网站页面时,则需要配置一个或多个自定义的 MIME 类型。

若要配置 MIME 类型,请如下操作:

  1. 进入 网站与域名 > Apache 与 nginx 设置
  2. MIME 类型下,选择 输入自定义值 按钮。
  3. 输入或删除所需的 MIME 类型,点击 确定
 
配置 Apache 处理程序

Apache 处理程序会指令web 服务器处理带有特定扩展名的文件。例如,下面的处理程序

cgi-script .cgi

会指令 web 服务器以 cgi 脚本来处理所有的 .cgi 文件。默认带有通用扩展名的文件的处理程序已预先配置好。但是,如果您想要更改处理带有某个扩展名的文件的处理程序,则需要配置一个或多个自定义处理程序。

若要配置自定义的处理程序,请如下操作:

  1. 进入 网站与域名 > Apache 与 nginx 设置
  2. 处理程序下,选择 输入自定义值 按钮。
  3. 输入或删除所需的处理程序,点击 确定
 
拒绝访问网站

您可以阻止某些访客访问您的网站。您可拒绝下列各地址进行访问:

  • 单个IP地址(例如,192.168.1.110
  • IP地址的子网(例如,127.0.0.1/8
  • 指定的主机名(例如,example.com
  • 所有人(使用星号"*")

被禁止的访客尝试访问您的网站时会收到 "403 Forbidden" 的错误信息。

若要配置访问您的网站的权限,请如下操作:

  1. 进入 网站与域名 > Apache 与 nginx 设置
  2. 拒绝访问该网站下,选择 输入自定义值 按钮。
  3. 输入或删除所需的 IP 地址、子网或主机名。
  4. 如果您阻止了一个子网,但是希望允许一个或多个属于该子网的IP地址能够访问您的网站,请将这些IP地址输入到排除 字段。
  5. 点击 确定

 
配置索引文件

不管到访您网站的访客何时浏览一个URL是请求一个目录而不是一个特定文件(例如,请求 www.example.com www.example.com/example 而不是 www.example.com/index.html),Apache 都会查找一个索引文件来显示。默认 Apache 会查找下面的文件(按指定的顺序):

  1. index.html
  2. index.cgi
  3. index.pl
  4. index.php
  5. index.xhtml
  6. index.htm
  7. index.shtml

如果一个目录中存在这所有七个文件,将会以 index.html 文件来服务浏览该目录的访客。如果 index.html 丢失,Apache 将会往下查找 index.cgi 文件,以此类推。如果未找到合适的索引文件,则默认显示 "403 Forbidden" 错误。

Plesk允许自定义访客浏览您网站上目录时 Apache 所查找的索引文件:

  • 您可以更改 Apache 所查找的索引文件的顺序(例如,您想要默认显示 index.php 文件而不是 index.html)。
  • 您可以将索引文件名称添加到列表中,或移除它们(例如,如果您网站的默认页面被命名为 hello.php,您则可以让 Apache 默认使用该文件来服务)。

若要配置索引文件,请如下操作:

  1. 进入 网站与域名 > Apache 与 nginx 设置
  2. 索引文件下,选择 输入自定义值 按钮。
  3. 按照Apache查找的顺序输入或删除所需索引文件的名称,然后点击 确定

 
配置"Expires" 头

Apache expires 头控制web浏览器可在多长时间内保留缓存的网页内容。配置该标头可降低服务器负载并加快网站速度。

例如,您可设置到期时段为10 天。一个访客访问您的网站,请求其 index.html 页面。访客的 web 浏览器会将该页面副本保存在缓存里,在接下来的10天内,每次访客浏览您的网站时,都将以该缓存的页面副本提供服务。第十一天时,如果请求该页面,浏览器则将重新从服务器请求该页面,因为缓存的副本已过期。

为有动态内容的网站配置 expires 头时,建议启用 仅对静态文件响应 Expires 头 选项。否则,在到期前的有效期内包括动态内容在内的所有内容都将被存储在浏览器的缓存中。不推荐这样,因为动态内容会频繁更新。

若要配置 "Expires" 头,请如下操作:

  1. 进入 网站与域名 > Apache 与 nginx 设置
  2. Expires下,选择 输入自定义值 按钮。
  3. 指定所需的有效期(推荐有效期为 14 天)。
  4. 如果您的网站有动态内容,请确保勾选 仅对静态文件响应Expires头 复选框。
  5. 点击 确定

注意: 如果启用了 nginx,只有 Apache 服务的文件将有 expires 头。如果选择了 静态文件智能处理 复选框,哪些文件会作为静态文件来处理则有 Apache 和 nginx 的默认配置决定。如果选择了 由 nginx 直接服务静态文件 复选框,且指定了文件扩展名,nginx则只服务带有指定扩展名的文件。

 
配置其它标头

您可以根据下面的模式配置其它的 HTTP 响应头:

名称:值

HTTP响应头包含有关请求页面指令web浏览器执行各项操作的信息。例如,下面的标头将会保护到访您网站的访客免受点击劫持

X-Frame-Options: DENY

若要配置其它的标头,请如下操作:

  1. 进入 网站与域名 > Apache 与 nginx 设置
  2. 其它标头下,选择 输入自定义值 按钮。
  3. 输入或删除所需的标头,点击 确定

 
限制遵循符号链接

默认允许Apache遵循符号链接:如果您的网站不使用符号链接,我们建议您禁用该选项,因为会有一定安全风险。

若要禁止 Apache 遵循符号链接,请如下操作:

  1. 进入 网站与域名 > Apache 与 nginx 设置
  2. 勾选 限制遵循符号链接 复选框,点击 确定

 
仅使用Nginx的主机

在 Plesk for Linux上,您可以组合使用 nginx 和 PHP-FPM 来托管网站。在此情况下,网站请求将不会传递到 Apache 而只由 nginx 服务。仅使用 Nginx的主机是PHP网站的一个可靠选项,也非常适合主机静态网站和应用服务器。您可以配置某个网站在不停止或禁用Apache的情况下仅由 nginx 服务,且不影响使用 Apache 托管的网站。

注意: Plesk 服务(例如,Webmail)会继续使用Apache 正常运行,不受切换到仅使用nginx的主机模式的影响。

若要为某个域名启用/禁用仅使用 nginx 的主机模式,请如下操作:

  1. 转到 网站与域名 > Apache 与Nginx 设置
  2. nginx 设置 部分,请清空 代理模式 复选框。
  3. 单击 应用

若要将某个域名恢复为 Apache+nginx 主机形式,请勾选代理模式 复选框。

已知局限性

当您将某个域名切换为仅使用nginx的主机模式时,您可能面临某些局限性:

  • 无法文件共享。
  • 不支持 SSI、Perl 和 Python。
  • 只能使用 "由 nginx 服务的 FPM 应用程序" PHP 处理程序。

 
配置静态文件处理方式

默认在 Plesk for Linux服务器上,nginx和Apache是一前一后协同工作的,Apache服务动态内容,nginx用作代理服务静态内容。该方案会优化服务器资源的利用率,且能够让Plesk 更快响应对托管网站的请求。Plesk 允许选择处理网站静态内容的方式。

通过nginx服务所有静态内容

这是Plesk for Linux默认的处理方式。不管对静态内容的请求何时进来,Apache只会指示相应的文件地址,而nginx会去查找并服务该请求。

若想通过nginx服务所有静态内容,请如下操作:

  1. 进入 网站与域名 > Apache 与nginx 设置 并向下滑动到"nginx 设置" 部分。
  2. 选择代理模式静态文件智能处理复选框。
  3. 请不要勾选 由 nginx 直接服务静态文件 复选框。
  4. 点击 确定
通过nginx只服务带有指定扩展名的文件

如果需要,可以只把带有特定扩展名的文件归为由 nginx 服务的静态内容。而其它文件通常归为由 Apache 服务的静态内容。注意,在该方案下,对有指定扩展名的文件的请求永远都不会到达 Apache。也就是说这些请求不会通过Apache 处理程序。也就是说,不会应用覆写规则或 .htaccess 指令。

若只想通过nginx服务指定的静态内容,请如下操作:

  1. 进入 网站与域名 > Apache 与nginx 设置 并向下滑动到"nginx 设置" 部分。
  2. 选择 代理模式由 nginx 直接服务静态文件 复选框。
  3. 默认已经在 由 nginx 直接服务静态文件 框内预先配置了某些静态文件扩展名。必要时可以添加或移除扩展名。以空白或 "|" 字符隔开每个文件扩展名。
  4. 点击 确定

注意: 启用 “由 nginx 直接服务静态文件” 选项会自动禁用默认的 “静态文件智能处理” 模式(即使仍选定了该选项)。

通过 Apache 服务所有静态和动态内容

如果需要,可以禁用 nginx 而配置 Apache 服务所有静态和动态内容。这样在某些情况下很有帮助,例如用于 nginx 故障排除时。对于生产环境下的网站,我们不建议使用 Apache 来处理所有内容。

若想通过 Apache 服务所有静态和动态内容,请如下操作

  1. 进入 网站与域名 > Apache 与nginx 设置 并向下滑动到"nginx 设置" 部分。
  2. 选择 代理模式 复选框。
  3. 清空 静态文件智能处理 和由 nginx 直接服务静态文件 复选框。
  4. 点击 确定。

 
启用 nginx 缓存

启用 nginx 缓存后,nginx代理服务器会缓存网站某些动态内容。而被缓存的数据会保留一小会儿时间(通常不超过几秒钟)。这样可以帮助加速网站加载并减少服务器负载。

只建议为某些特定网站启用 nginx 缓存,例如,比较受欢迎的博客或新闻网站:

  • 高流量。
  • 内容更新频率在几秒钟内。

但是对下列网站启用 nginx 缓存,不仅没用还会有损害:

  • 中低流量。
  • 内容更新频率通常少于几秒钟。
  • 有个性化内容(例如,访客的地理位置或其购物车的内容)。

若要启用 nginx 缓存,请如下操作:

  1. 转到 网站与域名 > Apache 与Nginx 设置
  2. 在 “nginx 设置” 部分,勾选 “启用 nginx 缓存” 复选框。
  3. (备选)您可以自定义 nginx 缓存设置。如果您对 nginx 缓存不熟悉,建议您保留默认设置。微调整这些设置可能会影响网站和服务器性能。
  4. 点击 确定
nginx 缓存设置

在 Plesk 界面中显示的Nginx缓存设置与nginx配置文件中的 nginx 指令和某些记录相对应。您可以在下面的表格中查看详情。

在Plesk GUI中显示的Nginx 微缓存设置

相应的 nginx 指令

相应的 nginx 参数(如果有)

“缓存大小“

proxy_cache_path

max_size

“缓存超时“

proxy_cache_valid

 

“缓存key“

proxy_cache_key

 

“使用 cookies 的缓存请求“

在 nginx 配置文件中指定的

 

“禁用缓存地址“

在 nginx 配置文件中指定的

 

“绕过缓存,当”

proxy_cache_bypass

 

“返回过期缓存记录”

proxy_cache_use_stale

 

注意: 对于使用 nginx 和 PHP-FPM 处理程序的网站,proxy_cache* 指令会被 fastcgi_cache* 替换。例如,“Cache key“ 设置由 fastcgi_cache_key 指令而不是 proxy_cache_key 管控。

“使用 cookies 的缓存请求“ 设置

默认,nginx 不会缓存含有  Cookie HTTP 头的 HTTP 请求。您可以更改此执行方式,在“使用 cookies 的缓存请求“ 字段中指定 cookies 的名称以令 nginx 缓存包含该等 cookies 的 HTTP 请求。例如,如果您指定 _ga and _gid cookie 名称,nginx 则将只缓存带有含 _ga or _gid 的 cookie 头的 HTTP 请求。Nginx 将不会缓存此类 HTTP 请求:带有的 cookie 头至少包含一个未在字段中指定的 cookie 名称。

куки

“禁用缓存地址“ 设置

您可以通过配置 nginx 不缓存某些 web 内容(例如,不常查看的动态内容)来减少服务器负载。具体操作是,在 “禁用缓存地址“ 字段中指定所需的 $request_uri。例如,如果您指定了 /wp-admin/,nginx 将不会缓存与 WordPress Admin Panel 相关的内容。

uri

注意: 如果您想要在 “使用 cookies 的缓存请求“ 和“禁用缓存地址“ 字段中指定多个值,请每个值各占一行。

 
服务器设置的默认值

您可设置每个参数值,可输入一个自定义值,或者保留 默认 值。后面一种情况下,Plesk 会使用由服务器管理员(主机提供商)定义的 web 服务器配置的默认值。

您的值会覆盖默认值。唯一例外的是 拒绝访问网站 设置 - 默认配置的 IP 地址,以及您指定的 IP 地址,都将被应用到您的网站。在发生冲突时(例如,当您允许默认配置中拒绝的 IP 地址),Apache 会使用您的设置。