1. 程式人生 > 其它 >nginx 新增第三方模組或者啟用編譯時禁用的模組

nginx 新增第三方模組或者啟用編譯時禁用的模組

nginx 新增第三方模組或者啟用編譯時禁用的模組

最近因為要使用 ngx-http_fastcgi_module 模組的 fastcgi_connect_timeout 引數 遇到的一些問題在此記錄下來

問題1:

在Nginx配置中新增 fastcgi_connect_timeout 引數

# fastcgi_connect_timeout 引數 可以新增在  http server localtion 中
# fastcgi_connect_timeout 預設為30s ,格式: fastcgi_connect_timeout 30s;
fastcgi_connect_timeout 60s; 
fastcgi_read_timeout 60s;
fastcgi_send_timeout 60s;

新增引數重啟的時候報錯:unknown directive "fastcgi_connect_timeout" 識別不了該引數,所以就選擇新增第三方模組,或者啟用模組

# 使用命令檢視,fastcgi模組是否內建模組
cd /data/software/build/nginx-1.18.0
./configure --help | grep fastcgi
  --without-http_fastcgi_module      disable ngx_http_fastcgi_module
  --http-fastcgi-temp-path=PATH      set path to store
                                     http fastcgi temporary files

# 由此看出 ngx-http_fastcgi_module 模組是內建模組 ,所以是之前編譯的時候禁用掉了 檢視編譯引數
/usr/local/webserver/nginx/sbin/nginx -V 
configure arguments: --user=nginx --group=nginx --prefix=/usr/local/webserver/nginx \
--sbin-path=/usr/local/webserver/nginx/sbin/nginx \
--conf-path=/usr/local/webserver/nginx/conf/nginx.conf \
--pid-path=/usr/local/webserver/nginx/run/nginx.pid \
--lock-path=/usr/local/webserver/nginx/run/nginx.lock \
--error-log-path=/usr/local/webserver/nginx/log/nginx/error.log \
--http-log-path=/usr/local/webserver/nginx/log/nginx/access.log \
--with-http_gzip_static_module --with-http_stub_status_module \
--with-http_ssl_module --with-pcre --with-file-aio --with-http_realip_module \
--without-http_scgi_module --without-http_uwsgi_module --without-http_fastcgi_module 
# --without-http_fastcgi_module   --without 表示禁用模組,內建模組沒有配置的話,就是預設啟用 
# --with-http_v2_module --with  表示新增第三方模組

# 新增或啟用模組,需要新增第三方模組的話需要提前下載好,但是啟用的話就編譯,使用之前的編譯資訊修改就行。
#刪除掉--without-http_fastcgi_module 重新編譯
#啟用多個模組就刪除多個 --without-http_scgi_module --without-http_uwsgi_module --without-http_fastcgi_module 
cd /data/software/build/nginx-1.18.0
./configure --user=nginx --group=nginx --prefix=/usr/local/webserver/nginx \
--sbin-path=/usr/local/webserver/nginx/sbin/nginx \
--conf-path=/usr/local/webserver/nginx/conf/nginx.conf \
--pid-path=/usr/local/webserver/nginx/run/nginx.pid \
--lock-path=/usr/local/webserver/nginx/run/nginx.lock \
--error-log-path=/usr/local/webserver/nginx/log/nginx/error.log \
--http-log-path=/usr/local/webserver/nginx/log/nginx/access.log \
--with-http_gzip_static_module --with-http_stub_status_module \
--with-http_ssl_module --with-pcre --with-file-aio --with-http_realip_module 

# 然後使用make 不用 make install 
make
# make之後會在當前路徑的objs資料夾下生成nginx ,使用該檔案替換 啟動檔案nginx
mv /usr/local/webserver/nginx/sbin/nginx /usr/local/webserver/nginx/sbin/nginx.bak
cp objs/nginx /usr/local/webserver/nginx/sbin/
# 檢視配置是否正確
/usr/local/webserver/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/webserver/nginx/conf/nginx.conf test is successful
# 重新載入nginx
/usr/local/webserver/nginx/sbin/nginx -s reload