整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。
从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。
web server apache tomcat11-01-官方文档入门介绍
web server apache tomcat11-02-setup 启动
web server apache tomcat11-03-deploy 如何部署
web server apache tomcat11-04-manager 如何管理?
web server apache tomcat11-06-Host Manager App -- Text Interface
web server apache tomcat11-07-Realm Configuration
web server apache tomcat11-08-JNDI Resources
web server apache tomcat11-09-JNDI Datasource
web server apache tomcat11-10-Class Loader
...
Introduction
CGI (Common Gateway Interface) 定义了 Web 服务器与外部内容生成程序(通常称为 CGI 程序或 CGI 脚本)交互的方式。
在 Tomcat 中,当您将 Tomcat 用作 HTTP 服务器并且需要 CGI 支持时,可以添加 CGI 支持。通常在开发期间进行这样的操作,当您不想运行诸如 Apache httpd 等网络服务器时。Tomcat 的 CGI 支持与 Apache httpd 的兼容性很高,但有一些限制(例如,只有一个 cgi-bin 目录)。
CGI 支持是使用 servlet 类 org.apache.catalina.servlets.CGIServlet 实现的。传统上,将此 servlet 映射到 URL 模式 "/cgi-bin/*"。
默认情况下,Tomcat 中禁用了 CGI 支持。
注意 - CGI 脚本用于执行 Tomcat JVM 外部的程序。
要启用 CGI 支持:
在默认的 $CATALINA_BASE/conf/web.xml 文件中有注释的示例 servlet 和 servlet-mapping 元素,用于 CGI servlet。要在 Web 应用程序中启用 CGI 支持,请将该 servlet 和 servlet-mapping 声明复制到 Web 应用程序的 WEB-INF/web.xml 文件中。
取消注释 $CATALINA_BASE/conf/web.xml 文件中的 servlet 和 servlet-mapping 可以一次为所有已安装的 Web 应用程序启用 CGI。
在您的 Web 应用程序的 Context 元素上设置 privileged="true"。
只有标记为特权的 Context 才允许使用 CGI servlet。请注意,修改全局的 $CATALINA_BASE/conf/context.xml 文件会影响所有 Web 应用程序。有关详细信息,请参阅 Context 文档。
有几个 servlet init 参数可用于配置 CGI servlet 的行为。
ACCEPT[-0-9A-Z]*|CACHE-CONTROL|COOKIE|HOST|IF-[-0-9A-Z]*|REFERER|USER-AGENT
。执行的 CGI 脚本取决于 CGI Servlet 的配置以及请求如何映射到 CGI Servlet。CGI 搜索路径从 web 应用程序根目录 + File.separator + cgiPathPrefix 开始。然后搜索 pathInfo(如果不为 null),否则搜索 servletPath。
搜索从第一个路径段开始,并逐个扩展一个路径段,直到不再剩余路径段(导致 404)或找到脚本。任何剩余的路径段都将作为 PATH_INFO 环境变量传递给脚本。