# 如何在Nginx或者Apache服务器中配置SSI支持

*Published:* 2024-03-09
*Author:* 客服001

#### 温馨提醒

如果文章内容或图片资源失效，请留言反馈，我们会及时处理，谢谢

本文最后更新于2024年3月9日，已超过 180天没有更新



SSI介绍
-----

SSI是Server Sidde Include的缩写，是服务器包含的意思，支持大部分的web服务器，例如：Apache、Nginx、Tomcat等等。

它的工作原理是：在页面发送到客户端之前，使用SSI指令将待包含的文件、图片等文件包含到请求的网页中，通过一个非常简单的语句即可调用包含文件，此语句指示WEB服务器将内容插入适当网页。

SSI是被HTML文档内需要进行处理的包含部分的SSI Servlet调用的。这些指令是HTML文档的注释形式，这些指令在将内容发送到客户端之前进行内容的替换。

标准配置格式是：&lt;!--#directive \[parm=value\] --&gt;。

配置项示例说明`config``<!--#config timefmt="%B %Y" -->`设置日期格式一起被SSI处理的其他数据`echo``<!--#echo var="VARIABLE_NAEM" -->`将会被变量的值替换掉`exec`--用来执行服务器端的命令`include``<!--#include virtual="file-name" -->`包含的文件绝对路径`flastmod``<!--#flastmod file="filename.html" -->`返回某个文件最后一次修改的时间`fsize``<!--#fzie file="filename.html" -->`返回某个文件的大小`printenv``<!--#printenv -->`返回所有定义的变量`set``<!--#set var="foo" value="Bar" -->`用来为定义的变量赋值Nginx启用SSI
----------

官方文档地址： [Module ngx\_http\_ssi\_module](https://www.xarjtc.com/?golink=aHR0cDovL25naW54Lm9yZy9lbi9kb2NzL2h0dHAvbmd4X2h0dHBfc3NpX21vZHVsZS5odG1s)

Nginx的SSI配置选项主要是以下三个：

[ssi](https://www.xarjtc.com/tag/ssi "查看ssi此标签更多文章") 默认值off，如果要启用SSI，将其设为on

ssi\_silent\_errors 默认值off，开启后在处理SSI文件出错时不输出错误提示\[an error occurred while processing the directive\],实际测试并没有抑制错误。

ssi\_types 默认是text/html，所以如果需支持html，则不需要设置这句，如果需要支持shtml格式则需要设置：ssi\_types text/shtml

参数的上下文环境是:http, server, location, if in location，下面是示例：

```
server {
    listen  80;
    server_name  192.168.1.10;
    location / {
        ssi on;
        ssi_silent_errors off;
        ssi_types text/html;
        index index.html;
        root /var/www/html;
        expires 30d;
        access_log      /var/log/nginx/localhost_access_log main;
    }
}
```

Apache上启用SSI
------------

官方文档地址：[Introduction to Server Side Includes](https://www.xarjtc.com/?golink=aHR0cHM6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvY3VycmVudC9ob3d0by9zc2kuaHRtbA==)

Apache的主配置文件httpd.conf中配置需要支持SSI的后缀（html）

去掉AddType text/shtml，AddOutputFilter INCLUDES .shtml前面注释。

注意一下包含文件的后缀。

宝塔面板开启ssi
---------

点击需要设置的网站

[![](https://www.xarjtc.com/wp-content/uploads/2024/03/3d3b488103e1c65.webp)](https://www.xarjtc.com/wp-content/uploads/2024/03/3d3b488103e1c65.webp)

点击配置文件

[![](https://www.xarjtc.com/wp-content/uploads/2024/03/c33e4e56671340c.webp)](https://www.xarjtc.com/wp-content/uploads/2024/03/c33e4e56671340c.webp)

代码如下：

```
#开启ssi
ssi on;
ssi_silent_errors on;
```

然后重启nginx。

设置完成以后，网站模板里加入代码

```
<!--#include file="/page/header.html"-->
```

路径一定要写绝对路径，模板设置完成以后，更新缓存，如果网站是生成静态的，需要先生成全站，然后就生效了。