讓nginx支持ssi,只須要在http段裏增長html
ssi on;nginx
ssi_types text/shtml;apache
或者在須要支持的虛擬主機配置裏增長也能夠。server段裏。安全
可是相對apache來講,nginx更加嚴格,對於include virtual=../../ 這樣的使用方法是不支持的,會在error日誌中報錯「unsafe URI」。那麼nginx就不能作到這一點了嗎?ide
打開nginx的ssi源碼src/http/modules/ngx_http_ssi_filter_module.c能夠看到這樣一段函數
if (ngx_http_parse_unsafe_uri(r, uri, &args, &flags) != NGX_OK) {
return NGX_HTTP_SSI_ERROR;
}日誌
這段是在判斷當前uri是否知足nginx的安全設置。函數ngx_http_parse_unsafe_uri在src/http/ngx_http_parse.c裏有定義,有興趣的朋友能夠自學一下。server
也就是說註釋掉這段,就能夠繞開nginx的安全設定了。htm
註釋後,從新編譯安裝。這樣nginx就能夠支持 include virtual=../../ 這樣的調用方法了。
源碼