在构建nginx时直接指定nginx的configure选项

nginx-build和nginx的configure选项

在过去,如果想要在nginx-build中详细指定nginx的configure选项,则需要单独准备一个执行./configure的Shell脚本文件。是的,就像这样。

#!/bin/sh

./configure \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \

要在nginx-build中执行上述的./configure命令,需要使用选项-c并提供此shell脚本文件。

$ nginx-build -d work -c nginx-configure

这种方法的好处是可以将nginx的构建方法保存在文件中,但也很麻烦。由于nginx-build最初是为了无缝构建和全面管理几十个实例和几种类型的nginx而开发的(并且正在开发中),所以将构建脚本保存到文件中是合理的,但毕竟还是麻烦。我希望能简单地实现这一点。

$ nginx-build -d work \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/lib/nginx/body \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--with-http_stub_status_module \
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--with-debug \
--with-http_gzip_static_module \
--with-http_spdy_module \
--with-http_ssl_module \
--with-pcre-jit \

nginx构建版本0.4.0

所以,从今天发布的nginx-0.4.0版本开始,现在可以实现这个功能。

$ nginx-build -d work \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/lib/nginx/body \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--with-http_stub_status_module \
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--with-debug \
--with-http_gzip_static_module \
--with-http_spdy_module \
--with-http_ssl_module \
--with-pcre-jit

nginx-build: 0.4.0
Compiler: gc go1.4.2
2015/06/09 20:08:11 Download nginx-1.9.1.....
2015/06/09 20:08:13 Extract nginx-1.9.1.tar.gz.....
2015/06/09 20:08:13 Generate configure script for nginx-1.9.1.....
2015/06/09 20:08:13 Configure nginx-1.9.1.....
2015/06/09 20:08:19 Build nginx-1.9.1.....
2015/06/09 20:08:23 Complete building nginx!

nginx version: nginx/1.9.1
built by clang 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
built with OpenSSL 0.9.8zd 8 Jan 2015
TLS SNI support enabled
configure arguments: --with-cc-opt=-Wno-deprecated-declarations --http-proxy-temp-path=/var/lib/nginx/proxy --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --http-log-path=/var/log/nginx/access.log --sbin-path=/usr/sbin/nginx --lock-path=/var/lock/nginx.lock --http-client-body-temp-path=/var/lib/nginx/body --with-http_spdy_module --with-http_stub_status_module --with-pcre-jit --with-http_ssl_module --with-http_gzip_static_module --with-debug

2015/06/09 20:08:23 Enter the following command for install nginx.

   $ cd work/1.9.1/nginx-1.9.1
   $ sudo make install
$

正确地配置参数并从nginx-build指定的选项中排列。

使用add-module将第三方模块集成进来

通过使用”add-module”命令,可以将第三方模块集成到系统中。

$ nginx-build -d work --add-module=../nginx/ngx_small_light

然而,nginx的–add-module和原版本有些不同。无法像以下这样多次使用–add-module。

$ nginx-build -d work --add-module=../nginx/ngx_small_light --add-module=../nginx/ngx_dynamic_upstream
nginx-build: 0.4.0
Compiler: gc go1.4.2
2015/06/09 20:13:07 Download nginx-1.9.1.....
2015/06/09 20:13:10 Extract nginx-1.9.1.tar.gz.....
2015/06/09 20:13:10 Generate configure script for nginx-1.9.1.....
2015/06/09 20:13:10 Configure nginx-1.9.1.....
2015/06/09 20:13:15 Build nginx-1.9.1.....
2015/06/09 20:13:18 Complete building nginx!

nginx version: nginx/1.9.1
built by clang 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
configure arguments: --with-cc-opt=-Wno-deprecated-declarations --add-module=/Users/bokko/workspace/nginx-build/../nginx/ngx_dynamic_upstream

2015/06/09 20:13:18 Enter the following command for install nginx.

   $ cd work/1.9.1/nginx-1.9.1
   $ sudo make install
$

尽管构建Nginx成功,但只能使用 –add-module 选项一次。这是由于Nginx-Build使用的flag包的限制所致。为了解决这个问题,Nginx-Build已经做出了一种解决方案,即使在 –add-module 选项中,可以通过逗号分隔指定多个模块路径。

$ nginx-build -d work --add-module=../nginx/ngx_small_light,../nginx/ngx_dynamic_upstream
nginx-build: 0.4.0
Compiler: gc go1.4.2
2015/06/09 20:15:14 Download nginx-1.9.1.....
2015/06/09 20:15:17 Extract nginx-1.9.1.tar.gz.....
2015/06/09 20:15:17 Generate configure script for nginx-1.9.1.....
2015/06/09 20:15:17 Configure nginx-1.9.1.....
2015/06/09 20:15:22 Build nginx-1.9.1.....
2015/06/09 20:15:25 Complete building nginx!

nginx version: nginx/1.9.1
built by clang 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
configure arguments: --with-cc-opt=-Wno-deprecated-declarations --add-module=/Users/bokko/workspace/nginx-build/../nginx/ngx_small_light --add-module=/Users/bokko/workspace/nginx-build/../nginx/ngx_dynamic_upstream

2015/06/09 20:15:25 Enter the following command for install nginx.

   $ cd work/1.9.1/nginx-1.9.1
   $ sudo make install
$

请查看其他限制事项。

广告
将在 10 秒后关闭
bannerAds