编译反向代理用途Nginx的模块禁用建议及仓库版模块确认问题
编译反向代理用途Nginx的模块禁用建议及仓库版模块确认问题
嘿,针对你编译Nginx做反向代理的需求,我来一步步给你梳理清楚:
一、模块禁用的建议
你提到的那几个模块,完全可以放心禁用,理由如下:
--with-http_mp4_module:这个模块是用来处理MP4文件的伪流媒体功能(比如视频拖拽播放)的,既然你不需要用Nginx做流媒体服务,禁用它完全没问题,还能减小编译后的程序体积。--with-http_flv_module:和MP4模块类似,专门负责FLV格式的流媒体处理,反向代理场景下用不上,果断禁用即可。--with-mail和--with-mail_ssl_module:这两个模块是给Nginx提供邮件代理/转发能力的,你只做HTTP反向代理,完全不需要这部分功能,禁用它们不会影响你的核心需求。
另外,如果你想要更精简的Nginx,还可以考虑禁用一些默认开启但反向代理用不上的模块,比如:
--without-http_autoindex_module:关闭自动生成目录索引的功能,反向代理几乎用不到--without-http_ssi_module:禁用服务器端包含(SSI)功能,对你的场景没用--without-http_static_module:如果你完全不需要Nginx处理静态文件(所有请求都转发给后端),也可以关掉这个模块
不过注意像--with-http_gzip_module、--with-http_ssl_module这类反向代理常用的模块,记得保留,前者用于内容压缩,后者处理HTTPS请求,都是反向代理的核心需求。
二、仓库版Nginx的模块确认
你用dnf install nginx安装后,运行nginx -V看到--with-http_auth_request_module出现在configure参数里,这就意味着这个模块已经被编译进仓库版的Nginx中了。
简单来说,nginx -V输出的configure参数列表,就是官方编译这个Nginx二进制包时使用的选项,只要某个--with-xxx-module参数存在,就代表对应的模块是启用状态。
如果仓库版的Nginx已经包含了你需要的http_auth_request_module,而且你能接受它自带的其他模块(毕竟多几个模块对性能影响很小,除非你对程序体积有极致要求),其实直接用仓库版会更省心——官方会负责后续的安全更新和维护,比自己编译更省事。
备注:内容来源于stack exchange,提问作者Lance




