首页 > 系统相关 >nginx的ssi

nginx的ssi

时间:2024-07-23 16:22:51浏览次数:15  
标签:服务器端 包含 Nginx apt nginx ssi SSI

Nginx 中的服务器端包含 (SSI)

#Nginx

在处理缓存或将(动态)文件包含到静态文件中时,服务器端包含是一个非常方便的功能。下面介绍如何使用它并配置 Nginx 以启用 SSI 的强大功能。

由Mark van Eijk于 2023 年 12 月 7 日 发布 · 阅读时间 2 分钟

  1. 什么是服务器端包含 (SSI)
  2. SSI 何时有用?
  3. 如何在 Nginx 中启用 SSI
  4. 添加 nginx apt 存储库
  5. 使用 nginx-full 安装 nginx
  6. 配置 SSI
  7. 重新加载 Nginx 服务

什么是服务器端包含 (SSI)

服务器端包含 (SSI) 是一种简单的脚本语言,用于在 Web 服务器上动态地将内容包含在网页中。SSI 指令嵌入在 HTML 页面中,并在页面发送到客户端浏览器之前由 Web 服务器处理。服务器执行指令并将指定的内容包含在最终交付给用户的 HTML 文档中。

SSI 通常用于以下任务:

  1. 包含内容:您可以将一个文件的内容包含到另一个文件中。这对于创建可重复使用的组件或出现在多个页面上的页眉和页脚非常有用。
<!--#include virtual="/path/to/header.html" -->
  1. 日期和时间戳:您可以将当前日期和时间插入到您的网页中。
<!--#echo var="DATE_LOCAL" -->
  1. 条件语句:SSI 支持简单的条件语句,允许您根据特定条件包含或排除内容。
<!--#if expr="${QUERY_STRING} = 1" -->
Content for query string 1.
<!--#else -->
Content for other cases.
<!--#endif -->
  1. 变量设置与显示:可以设置变量并显示其值。
<!--#set var="pageTitle" value="My Page" -->
<title><!--#echo var="pageTitle" --></title>

要使用 SSI,您的 Web 服务器需要配置为识别和处理 SSI 指令。文件扩展名“.shtml”通常与启用 SSI 的文件相关联,但配置可能因所使用的服务器软件(例如 Apache、Nginx)而异。确保服务器管理员已为所需文件扩展名启用 SSI 处理。

 SSI 什么时候有用?

虽然将文件包含到另一个文件中是动态脚本语言的典型任务,但在某些情况下 SSI 非常有用。以下情况非常适合 SSI:

  1. 脚本语言存在安全问题的托管环境
  2. 无法配置主机以执行服务器端脚本
  3. 当需要包含的文件是静态(HTML)文件时
  4. 服务器资源有限;SSI 在高流量时性能非常出色
  5. 它简单、轻量,并且使 HTML 有点动态
  6. 你再也没有借口在页脚中使用过时的版权年份数字了

如何在 Nginx 中启用 SSI

添加 nginx apt 存储库

echo "deb http://nginx.org/packages/ubuntu/ $(lsb_release -sc) nginx
deb-src http://nginx.org/packages/ubuntu/ $(lsb_release -sc) nginx" > /etc/apt/sources.list.d/nginx.list
sudo curl -L https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
sudo apt-get update

使用 nginx-full 安装 nginx

sudo apt install -y nginx-full

配置 SSI

在需要使用SSI的位置块中添加以下规则:

#也可以在http块添加此配置

location / {
    ...
    ssi on;
    ssi_silent_errors on;
    ssi_types text/shtml;
    ...
}

重新加载 Nginx 服务

重新加载 Nginx 服务以应用配置更改,无需停机:

sudo service nginx reload
 

 

标签:服务器端,包含,Nginx,apt,nginx,ssi,SSI
From: https://www.cnblogs.com/zrxuexi/p/18318704

相关文章

  • 一段时间后登录时 Flask 出现 SESSION_COOKIE_NAME 错误
    直到最近,一切都很好,但现在我的网站不断给出“SESSION_COOKIE_NAME”和“NoneType”对象没有属性“修改”错误。但令人感兴趣的是,如果我更改代码,错误如何消失一段时间并不重要。请帮助知识渊博的人这里是代码最重要的部分:importosimportplotly.expressaspximportcs50......
  • Nginx:高性能 Web 服务器的卓越之选
    Nginx在当今数字化的时代,Web服务器的性能和效率至关重要。Nginx作为一款备受赞誉的高性能Web服务器,正发挥着举足轻重的作用。Nginx是一款轻量级、高性能、高并发的Web服务器和反向代理服务器。它以其出色的性能和稳定性在众多服务器中脱颖而出。核心特点高并发处......
  • 基于Ubuntu系统升级或安装Nginx
    1.备份/etc/nginxsudocp-r/etc/nginx~/nginx_backup2.停止并卸载sudonginx-sstopsudoaptremovenginxnginx-commonnginx-fullnginx-core3.更新apt源要注意codename,ubantu版本不同codename不同#进入目录$cd/etc/apt#备份源文件$sudocpsources.list......
  • ValueError:X 有 1 个特征,但 LinearRegression 期望有 2 个特征作为输入
    我正在使用pywebio为我的机器学习程序创建一个小型脚本运行用户界面。当不使用小型UI时,运行线性回归predict()函数时不会出现任何错误。UI从用户处检索两个数字,an'age'和a'salary'这两个数字被输入到numpy数组中,并且numpy数组已从一维......
  • vue项目打包以及在nginx中部署
    ——————vue项目打包点击npm脚本下的build中的三角即可没有npm脚本的话点下package.json,还没有的参考博客https://www.cnblogs.com/yansans/p/18303172 稍微等一会,打包完成后数据会放在新生成的dist目录中  打包结束  ——————在nginx中部署在文件夹......
  • keepalived+nginx实现负载均衡
    1、安装keepalived(源码编译安装)wgethttps://www.keepalived.org/software/keepalived-2.3.0.tar.gztar-zxfkeepalived-2.3.0.tar.gzcdkeepalived-2.3.0&&  mkdir/data01/keepalived&& ./configure--prefix=/data01/keepalived&&make-j4&&......
  • thinkphp Nginx伪静态
    过滤api前缀location/{add_headerAccess-Control-Allow-Origin*;add_headerAccess-Control-Allow-Methods'GET,POST,OPTIONS';add_headerAccess-Control-Allow-Headers'DNT,Keep-Alive,User-Agent,Cache-Control,Content-Type,Authorization';......
  • JWT 没那么神秘,用它换掉 Session + Cookie 认证
    本项目代码已开源,具体见fullstack-blog。数据库初始化脚本:关注公众号程序员白彬,回复关键词“博客数据库脚本”,即可获取。背景引入在《前端轻松拿捏!最简全栈登录认证和权限设计!》一文中,我们掌握了如何基于Session+Cookie实现一个基本的登录认证功能,这是一个经得起时......
  • 使用Nginx反向代理minio,提供文件公共访问
    MinIO是一个基于ApacheLicensev2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。在之前的一篇文章介绍了《使用Docker搭建minio对象存储与mc客户端常用命令》,这篇文章......
  • 使用NGINX + MINIO + IMAGEPROXY 搭建私有图床
    MinIO是一个基于ApacheLicensev2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。图床的基础是Minio,但minio并不提......