启用SSI nginx的配置?

启用SSI nginx的配置?,nginx,ssi,Nginx,Ssi,我想做服务器端包含,我的机器上安装了nginx服务器,但我找不到在nginx.conf文件中启用ssi的方法? 我在网上能找到的只有 syntax: ssi on | off; default: ssi off; context: http, server, location, if in location 在位置上下文上启用ssi。在我的情况下,我希望它在根上 location / { ssi on; } 看起来你和我有同样的问题;找到如何在NGINX上启用SSI的清晰

我想做服务器端包含,我的机器上安装了nginx服务器,但我找不到在nginx.conf文件中启用ssi的方法? 我在网上能找到的只有

syntax: ssi on | off;
default:    
ssi off;
context:    http, server, location, if in location

在位置上下文上启用ssi。在我的情况下,我希望它在根上

location / {
   ssi on;
}

看起来你和我有同样的问题;找到如何在NGINX上启用SSI的清晰解释。Crystal Clear不仅需要使用哪种语法,还需要使用格式以及在何处包含它。我明白了,这并不难,但互联网上缺乏清晰的说明让人沮丧

您需要打开nginx.conf文件并查找格式如下的部分(我还包括'ssi on'语法):

我花了一点时间才意识到位置,但它实际上非常简单,只需在指定的索引文件名的正下方添加一行“ssi on”(它应该能够真正到达您想去的任何地方,我不认为顺序很重要,只要它在两个括号{}内即可)

之后,要验证SSI是否在NGINX服务器上工作,请在空白html页面的“body”标记的任意位置添加以下行

<!--#echo var="DATE_LOCAL" -->

并将其与扩展名.shtml一起保存在web服务器的根目录中

在访问您的页面时,您应该会看到服务器的本地日期和时间。我意识到这已经快一年了,但在我沮丧地试图找到清晰的指示后,我想尽我最大的努力为可能需要它们的任何人提供清晰的指示。所以希望这能帮到别人

这是NGINX关于SSI的文档页面(老实说,这并没有像我希望的那样帮助我,但它仍然很有用,而且只能变得越来越有用)


默认情况下,ssi仅适用于
文本/html
MIME类型;这可能会让你感到沮丧,尽管这里有明确的记录

您可能需要添加

ssi on;
ssi_types *;  # Or something more specific
为单个域在NGINX上启用SSI 要仅为一个域启用SSI(限制可能的安全漏洞),您可以按如下方式将其添加到该域的.conf文件中——在Debian中,这些文件(对某些人有争议)存储在类似Apache的系统中的“etc/nginx/sites available”下

关键部分:

  • index index.html index.shtml
  • ssi开启

您可以将其放入
http
server
以及
location
(这就是上下文)-如果要在所有页面上启用SSI,请将其放入
server
部分(即用于侦听、服务器名称、根目录等的部分)如果你有多个位置块。另一件事可能会让你困惑(我也遇到过):你可能正确地打开了它,但你的页面可能被缓存了——打开一个私人浏览/匿名模式窗口是检查这一点的简单方法。ssi_types*;可能存在安全风险,因为允许html文件在服务器上执行任何文件扩展名,
ssi on;
ssi_types *;  # Or something more specific
server {
  server_name mydomain.com;

  root /home/username/html;
  index index.html index.shtml;

  location / {
    ssi on;
    ...otherstuffhere
  }
}