SCGI(Simple Common Gateway Interface)与FastCGI相似,也是CGI的一个替代协议,SCGI源于Python社区,
SCGI模块能够使得Nginx与SCGI进程进行互相配合工作,并且能够控制将什么参数传递到SCGI进程,本模块Nginx服务器于0.8.42版本开始提供使用。
location / { include scgi_params; scgi_pass localhost:9000; } |
具有缓存的示例:
http { scgi_cache_path /path/to/cache levels=1:2 keys_zone=NAME:10m inactive=5m;
server { location / { scgi_pass 127.0.0.1:9000; scgi_cache NAME; scgi_cache_valid 200 302 1h; scgi_cache_valid 301 1d; scgi_cache_valid any 1m; scgi_cache_min_uses 1; scgi_cache_use_stale error timeout invalid_header http_500; } } } |
SCGI模块提供了一下命令。
指令名称:scgi_bind
功 能:在调用connect()之前,该指令会将每一个上游连接的套接字绑定到本地的IP地址上。如果主机有多个网卡接口/别名,并且你想通过指定的网卡接口/ip地址对外连接,那么这个功能将会有用。
语 法: scgi_bind address
默 认 值: none
使用环境: http, server, location
例 如:
scgi_bind 192.168.1.1; |
指令名称:scgi_buffer_size
功 能:该指令用于设置缓冲区的大小,缓存区用于缓存从scgi服务器获取的响应的第一部分,通常来说,这部分响应内容是一个简单的响应头。缓存的默认值通常来说等于由scgi_buffers指令设置的一个缓冲区的大小。
语 法: scgi_buffer_size the_size
默 认 值: scgi_buffer_size 4k/8k
使用环境: http, server, location
指令名称:scgi_buffers
功 能:该指令设置了缓冲的大小和数量,用于缓存从SCGI服务器读取的数据。默认情况下,一个缓冲(buffer)等于一个内存页面,具体的值依赖于具体的操作系统,可能是4K, 8K 或者 16K。
语 法: scgi_buffers the_number is_size
默 认 值: scgi_buffers 8 4k/8k
使用环境: http, server, location
指令名称:scgi_busy_buffers_size
功 能:设置“忙”缓冲的大小,按照一般的用法来说就是将其设为scgi_buffers的两倍。
语 法: scgi_busy_buffers_size size
默 认 值: scgi_busy_buffers_size ["#scgi_buffer_size"] * 2
使用环境: http, server, location, if
指令名称:scgi_cache
功 能:为缓存实际使用的共享内存指定一个区域,定义一个cache区域(zone)。对区域(zone)定义标识符是为了进一步在其它指令中使用。相同的区域可以用在不同的地方。
语 法: scgi_cache zone|off
默 认 值: off
使用环境: http, server, location
指令名称:scgi_cache_bypass
功 能:该指令指定什么情况下的客户端的请求将会“绕开”读取被缓存的响应,并且将客户端请求传递到上游服务器。该指令从0.8.46版本开始提供。例如:
scgi_cache_bypass $cookie_nocache $arg_nocache$arg_comment; scgi_cache_bypass $http_pragma $http_authorization; |
如果变量为空或者是为"0",那么表达式将会为false。例如,在上面的这个例子中,如果在请求中设置了"nocache",那么这些请求总是被传递到后台服务器。
需要注意的是,来自于后台的这些响应仍旧有资格被缓存,见于此方式,可以通过它来刷新缓存中的某个缓存条目,具体的方式是通过发送一个具有自己选择的(请求)头的请求,例如,"My-Secret-Header: 1",于是,便可以设置一个scgi_no_cache行,例如:
scgi_no_cache $http_my_secret_header; |
以此方式来刷新缓存的条目。
语 法: scgi_cache_bypass variable1 variable2...
默 认 值: none
使用环境: http, server, location
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27043155/viewspace-733094/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27043155/viewspace-733094/