./configure 是编译前关键步骤,仅生成 Makefile 并检测环境;核心参数如 --prefix、--conf-path、--sbin-path 等决定安装路径且不可后期修改;需显式启用模块(如 --with-http_ssl_module)并指定运行用户(--user=nginx)。

直接在解压后的 Nginx 源码目录中运行 ./configure 命令,配合参数完成编译前的配置。它不安装也不编译,只生成 Makefile 和检测系统环境,是整个编译流程的第一步。
核心路径类参数要提前定好
这些参数决定 Nginx 安装后文件的落点,一旦编译完成就无法通过命令行更改,必须重编译:
-
--prefix=PATH:最基础的参数,指定“根安装目录”,比如
--prefix=/opt/nginx。后续 conf、sbin、logs、html 等子目录都默认从这里派生 -
--conf-path=PATH:显式指定主配置文件位置,如
--conf-path=/etc/nginx/nginx.conf。设了这个,Nginx 启动时就只认它,不再看--prefix下的 conf 目录 -
--sbin-path=PATH:指定 nginx 可执行文件路径,例如
--sbin-path=/usr/sbin/nginx -
--pid-path=PATH 和 --error-log-path=PATH:分别控制 pid 文件和错误日志的默认位置,常设为
/var/run/nginx.pid和/var/log/nginx/error.log
用户与权限相关参数
Nginx 默认以 nobody 用户运行,生产环境应明确指定更安全的专用用户:
-
--user=USER:如
--user=www-data或--user=nginx -
--group=GROUP:配套指定组,如
--group=www-data - 注意:目标用户和组需在系统中已存在,且对日志目录、pid 目录等有读写权限
模块启用与禁用
Nginx 大部分功能模块默认不启用,需在 configure 时主动开启:
- --with-http_ssl_module:启用 HTTPS 支持(必需)
- --with-http_v2_module:启用 HTTP/2
-
--with-http_stub_status_module:启用
/status状态页 - --with-http_realip_module:用于获取真实客户端 IP(反代场景常用)
- --without-http_rewrite_module:若确定不用 rewrite 功能,可显式禁用以精简体积
- 第三方模块用 --add-module=PATH,如
--add-module=../nginx-upstream-check-module
常见实用组合示例
一个兼顾规范性与生产可用性的典型配置命令:
./configure \
--prefix=/usr/local/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_stub_status_module \
--with-http_realip_module
执行完这条命令,再运行 make && sudo make install 即可完成安装。


















