Nginx模块参考手册:SSI模块(SSI)

这些模块默认会全部编译进Nginx,除非手工指定某个模块在configure时排除。

这个模块为处理服务器端包含(SSI)的输入提供一个过滤器,目前所支持的SSI命令并不完善。
如下例:

location / { ssi on;}

指令

ssi

语法:ssi [ on | off ]
默认值:ssi off
使用字段:http, server, location, location中的if字段
启用SSI处理。
注意如果启用SSI,那么Last-Modified头和Content-Length头不会传递。

ssi_silent_errors

语法:ssi_silent_errors [on|off]
默认值:ssi_silent_errors off
使用字段:http, server, location
如果在处理SSI的过程中出现“[an error occurred while processing the directive]”错误,禁止将其输出。

ssi_types

语法:ssi_types mime-type [mime-type …]
默认值:ssi_types text/html
使用字段:http, server, location
默认只解析text/html类型,这个参数可以指定其他的MIME类型。

ssi_value_length

语法:ssi_value_length length
默认值:ssi_value_length 256
使用字段:http, server, location
定义允许SSI使用的参数值的长度。

SSI 命令

命令格式如下:

<!--# command parameter1=value parameter2=value...parameterN=value --> >

(#)前面必须以两个-开头
支持的SSI命令如下:

block

命令描述一个可以在include命令中使用的块,在块中可以存在SSI命令。

name - 块的名称,如: <!--# block name="one" > the silencer <!--# endblock -->

config

为SSI指定一些配置参数。

errmsg - 在SSI处理过程中得到的错误字段,默认字符串为:[an error occurred while processing the directive]。 timefmt - 时间字符串的格式,strftime(3)函数使用,默
认为: "%A, %d-%b-%Y %H:%M:%S %Z"

在时间中包含秒可以使用“%s”

echo

打印一个变量。

var - 变量的名称。 default - 如果变量为空,则显示这个字符串,默认为“none”。如: <!--# echo var="name" default="no" >

与下列等效:

<!--# if expr="$name" ><!--# echo var="name" ><!--# else >no<!--# endif >

if/elif/else/endif

根据条件包含其他字段或者指令,用法:

<!--# if expr="..." > ... <!--# elif expr="..." > ... <!--# else > ... <!--# endif >

上述例子中只有一个嵌套为真。

expr - 判定一个表达式,可以是变量: <!--# if expr="$name" >

比较字符串:

<!--# if expr="$name = text" > <!--# if expr="$name != text" >

或者匹配正则:

<!--# if expr="$name = /text/" > <!--# if expr="$name != /text/" >

如果使用变量,则用他们的值代替。

include

包含一个其他来源的记录。

file - 包含一个文件,如: <!--# include file="
footer.html" > virtual - 包含一个请求,如: <!--# include virtual="/remote/body.php?argument=value" >

file或者virtual包含的文件必须在server中配置为一个location。
“file”和”virtual”主要是一些历史性的差别,”file”等同于带”wait”选项的”virtual”,但是现在他们基本都处理同样的操作,都可以处理一个URI或者一个静态文件。
如果有多个请求它们将并行发出,如果需要按顺序发出,请使用“wait”选项

stub - 如果请求为空或返回一个错误后使用的默认块。 <!--# block name="one" > <!--# endblock > <!--# include virtual="/remote/body.php?argument=value" stub="one" > wait - 当设置为yes时,在当前的请求未完成之前剩余的SSI不会进行判定,
例如: <!--# include virtual="/remote/body.php?argument=value" wait="yes" >

set

设置一个变量。

var - 变量。 value - 包含变量名变量的值,它们将被判定。

变量

$date_local

本地时区的当前时间,选项 “timefmt”可以指定格式。

$date_gmt

当前的格林尼治时间,选项 “timefmt”可以指定格式。

时间: 2024-10-25 21:13:06

Nginx模块参考手册:SSI模块(SSI)的相关文章

Nginx模块参考手册:User ID模块(User ID)

这些模块默认会全部编译进Nginx,除非手工指定某个模块在configure时排除. 模块ngx_http_userid_module为连接发布cookie,主要使用$uid_got和$uid_set变量,注意:$uid_got和$uid_set无法在SSI中取得,因为SSI过滤模块工作在userid模块过滤之前.这个模块相当于Apache的mod_uid模块.示例配置: userid on;userid_name uid;userid_domain example.com;userid_pat

Nginx模块参考手册:URL重写模块(Rewrite)

这些模块默认会全部编译进Nginx,除非手工指定某个模块在configure时排除. 这个模块允许使用正则表达式重写URI(需PCRE库),并且可以根据相关变量重定向和选择不同的配置.如果这个指令在server字段中指定,那么将在被请求的location确定之前执行,如果在指令执行后所选择的location中有其他的重写规则,那么它们也被执行.如果在location中执行这个指令产生了新的URI,那么location又一次确定了新的URI.这样的循环可以最多执行10次,超过以后nginx将返回5

Nginx模块参考手册:日志模块(Log)

这些模块默认会全部编译进Nginx,除非手工指定某个模块在configure时排除. 控制nginx如何记录请求日志.例: log_format gzip '$remote_addr - $remote_user [$time_local] ' '"$request" $status $bytes_sent ' '"$http_referer" "$http_user_agent" "$gzip_ratio"'; access

Nginx模块参考手册:Gzip Precompression模块(Gzip Precompression)

如果要使用这些模块,则必须在编译时指定相关的编译参数. 这个模块在一个预压缩文件传送到开启Gzip压缩的客户端之前检查是否已经存在以".gz"结尾的压缩文件,这样可以防止文件被重复压缩.这个模块在0.6.24后可用,如果要使用它则需要在编译时指定如下参数: ./ configure --with-http_gzip_static_module 示例配置: gzip_static on; gzip_http_version 1.1;gzip_proxied expired no-cach

Nginx模块参考手册:嵌入式Perl模块(Embedded Perl)

如果要使用这些模块,则必须在编译时指定相关的编译参数. 这个模块允许nginx使用SSI调用perl或直接执行perl 在编译时安装模块 默认这个模块为不可用,如果想使用这个模块,则必须在编译时指定–with-http_perl_module.系统必须有Perl 5.6.1以上版本. 已知的问题 这个模块并不完善,因此可能会出现一些bug如: 如果perl脚本执行延时操作,(如dns解析,数据库查询等.) 那么运行perl脚本的工作进程将一直处于完全占用状态,因此需要perl脚本尽量简短,并且很

Nginx模块参考手册:Map模块(Map)

这些模块默认会全部编译进Nginx,除非手工指定某个模块在configure时排除. 这个模块允许你分类或者同时映射多个值到多个不同值并储存到一个变量中,map指令用来创建变量,但是仅在变量被接受的时候执行视图映射操作,对于处理没有引用变量的请求,这个模块并没有性能上的缺失. 如下例: map $http_host $name { hostnames; default 0; example.com 1; *.example.com 1; test.com 2; *.test.com 2; .si

Nginx模块参考手册:HTTP核心模块(HTTP Core)

这些模块默认会全部编译进Nginx,除非手工指定某个模块在configure时排除. 摘要 Nginx处理HTTP的http://www.aliyun.com/zixun/aggregation/17626.html">核心功能模块 指令 aio 语法:aio [on|off|sendfile] 默认值:off使用字段:http, server, location这个指令在Linux内核2.6.1922以上版本可以使用,对于Linux内核,这个指令需要配合directio指令,使用这个指令

Nginx模块参考手册:主模块(Main Module)

摘要 包含一些Nginx的基本控制功能 指令 daemon 语法:daemon on | off默认值:on daemon off; 生产环境中不要使用"daemon"和"master_process"指令,这些指令仅用于开发调试.虽然可以使用daemon off在生产环境中,但对性能提升没有任何帮助,但是在生产环境中永远不要使用master_process off. env 语法:env VAR|VAR=VALUE默认值:TZ使用字段:main这个命令允许其限定一

Nginx模块参考手册:Secure Link模块(Secure Link)

如果要使用这些模块,则必须在编译时指定相关的编译参数. 这个模块为一个必需的安全性令牌检查请求网址.要使用这个模块必须在编译时指定下列编译参数(0.7.18后版本可用): --with-http_secure_link_module 示例配置: location /prefix/ { secure_link_secret secret_word; #如果哈希不正确$secure_link将为一个空字符串. if ($secure_link = "") { return 403; } #