第十三章 配置 Apache 以与 Web 网关配合使用 (Windows) - 推荐选项:Apache API 模块 (CSPa24.dll)

文章目录

  • [第十三章 配置 Apache 以传递其他文件类型(所有平台)](#第十三章 配置 Apache 以传递其他文件类型(所有平台))
  • [按位置配置 `Apache`](#按位置配置 Apache)
  • [按文件扩展名配置 `Apache`(`CSPFileTypes` 指令)](#按文件扩展名配置 ApacheCSPFileTypes 指令))
  • [按 `MIME` 类型配置 `Apache`](#按 MIME 类型配置 Apache)

第十三章 配置 Apache 以传递其他文件类型(所有平台)

在所有平台上,Apache API 模块始终识别对以下 InterSystems 文件类型的请求并将其发送到 Web 网关:

java 复制代码
.csp .cls .zen .cxw 

可能有对其他文件的请求,希望将其发送到 Web Gateway,以便路由到相应的 IRIS 实例的 CSP 服务器。例如,如果需要通过此 Web 服务器访问管理门户,则还必须添加以下静态文件类型的映射:.jpg.gif.png.svg.css .js

可以将 Apache 配置为通过以下任一方式将对附加文件的请求传递到 Web Gateway

  • CSP 位置指令
  • 按文件扩展名
  • MIME 类型

注意:本页描述的 CSP 指令不能作为 <VirtualHost> 配置的一部分调用。

按位置配置 Apache

<Location> 块中使用 CSP 指令将对特定目录下的资源的所有请求传递到 Web 网关。以下命令会导致 Apache 将对 /csp 目录下的资源的所有请求转发到 Web Gateway

xml 复制代码
<Location /csp>
   CSP On 
</Location> 

例如,对以下所有资源发出的请求将发送到 Web 网关,以路由到相应的 IRIS 实例:

java 复制代码
/csp/ 
/csp/samples/menu.csp 
/csp/sys/ 

按文件扩展名配置 ApacheCSPFileTypes 指令)

CSPFileTypes 指令将 Web 服务器配置为将文件请求路由到 Web 网关(如果文件是特定类型的文件)。该指令仅适用于对具有扩展名的文件(例如 /csp/menu.csp)的请求。它不适用于没有文件扩展名的资源(例如 /csp/menu)。

以下指令使 Apache 将对 xxxyyy 类型的文件的请求传递到 Web 网关。

java 复制代码
CSPFileTypes xxx yyy 

可以为整个服务器全局发出此指令,或将其限制为 <Location><Directory> 块。例如,以下命令会导致 Apache 将对 xxxyyy 类型的文件的请求传递到 Web Gateway,但仅当请求发送到 /csp 目录下的位置(包括 /csp/samples 等子目录)时:

xml 复制代码
<Location /csp/> 
   CSPFileTypes xxx yyy
</Location>

如下所示将通配符 (*) 与 CSPFileTypes 指令一起使用会导致 Apache 将对 /csp 目录(和 /csp/samples 等)下所有类型的文件的请求传递到 Web Gateway

xml 复制代码
<Location /csp/> 
   CSPFileTypes * 
</Location> 

MIME 类型配置 Apache

除了识别上面列出的文件扩展名之外,CSP 引擎还可以识别以下 MIME 类型的文件:

java 复制代码
application/x-csp
java 复制代码
text/csp

例如,要将文件扩展名 xxx 添加到 IRIS(特别是 CSP 引擎)处理的文件列表中,请使用:

java 复制代码
LoadModule csp_module_sa /iris/csp/bin/CSPa24.dll
AddType application/x-csp csp cls zen xxx

使用 MIME 类型将文件类型与 CSP 关联的问题之一是 Apache 会检查以确保资源的路径(即托管目录)物理存在,如果不存在,则返回文件未找到错误。然而,它不会检查以确保所请求的文件物理存在------这适用于 CSP 引擎所服务的资源,就 Web 服务器而言,这些资源可以是虚拟的。因此,"按 MIME 类型"方法仅适用于可以在 Web 服务器上复制应用程序路径结构的情况。

相关推荐
胡哈1 小时前
React Compiler:让开发者忘掉 memo 这件事
前端·react.js
xiyueyezibile1 小时前
“自迭代” Skill 的 team-pitfalls 的演进
前端·后端·ai编程
林恒smileZAZ1 小时前
`Array(100).map(() => 1)` 为什么全为空?
前端·javascript
小巧的砖头1 小时前
C#会重蹈覆辙吗?系列之2:反射及元数据的性能问题
开发语言·前端·c#
KaMeidebaby2 小时前
卡梅德生物技术快报|蛋白的叠氮基修饰:实操解析:核酸模板耦合蛋白的叠氮基修饰实现靶蛋白定点共价标记
前端·人工智能·物联网·算法·百度
濮水大叔2 小时前
在大型 Vue 项目中,如何有效管理复杂的状态?“散装版” vs “套装版”
前端·vue.js·typescript
玄星啊2 小时前
可修改:代码的生存底线
前端·ai编程
没落英雄2 小时前
3. DeepAgents 实战 - Memory Skills 与上下文工程
前端·人工智能·架构
Bigger2 小时前
对不起!我错怪你了,UnoCSS:一次和 AI 一起排查 DevTools 卡顿的经历
前端·css·人工智能
laowang3573 小时前
依赖故障时,日志体系需要埋哪些关键节点才能快速定位是安装失败、解析失败还是运行时缺失?
前端·javascript·vue.js·webpack·node.js