必须在源码编译时显式添加--with-http_xslt_module参数,并安装libxml2和libxslt开发包,再通过nginx -V验证模块内建,缺一不可。

要在 Nginx 源码编译时启用 XSLT 模块(ngx_http_xslt_module),必须显式添加 --with-http_xslt_module 参数,并确保系统已安装对应依赖库,否则 configure 会失败或模块不可用。
确认并安装必要依赖库
该模块依赖 libxml2 和 libxslt 的开发头文件与链接库。若缺失,configure 将报错如 "libxml2/libxslt not found" 或直接跳过模块启用。
-
CentOS / RHEL:运行
yum install libxml2-devel libxslt-devel -
Ubuntu / Debian:运行
apt-get install libxml2-dev libxslt1-dev - 若使用自定义路径安装的 libxml2/libxslt(如源码编译到
/opt/libxml2),可加参数:--with-libxml2=/opt/libxml2 --with-libxslt=/opt/libxslt
configure 时正确启用模块
进入 Nginx 源码目录后,执行 ./configure 必须包含 --with-http_xslt_module。建议同时启用常用配套选项:
-
--with-http_xslt_module(必需) -
--with-http_realip_module(便于获取真实客户端 IP) -
--with-http_gzip_static_module(支持预压缩静态资源) - 如需调试,可加
--with-debug
示例命令:
编译安装并验证是否生效
执行 make && sudo make install 后,需确认模块已真正内建:
- 运行
/usr/local/nginx/sbin/nginx -V 2>&1 | grep -o with-http_xslt_module,有输出即表示模块已编译进二进制 - 检查配置中使用
xslt_stylesheet指令时是否不报错;若提示"unknown directive 'xslt_stylesheet'",说明模块未启用成功 - 注意:该模块默认只对
text/xml和application/xml响应生效,需配合xslt_types显式扩展类型(如支持application/rss+xml)
常见问题提醒
模块启用失败通常卡在三个环节:
- 系统缺少
libxml2-dev或libxslt1-dev(仅装运行时库不够) - configure 命令漏掉
--with-http_xslt_module,或拼写错误(如写成--with-xslt-module) - 未验证
nginx -V输出,误以为编译成功,实际模块被静默忽略
不复杂但容易忽略——缺开发包、漏参数、没验证,三者任一出问题都会导致 XSLT 功能不可用。


















