https://www.cnblogs.com/wazy/p/8108824.html
./configure --user=www \ #worker進程運行用戶 --group=www \ #worker進程運行的組 --prefix=/usr/ \ #Nginx安裝的根路徑,所有其他的路徑都要依賴於改選項 --conf-path=/etc/nginx/nginx.conf \ #如果在命令行沒有指定配置文件,那么將會通過這里指定的路徑,Nginx將會去那里查找它的配置文件 --sbin-path=/usr/sbin/nginx \ #指定Nginx二進制文件的路徑。如果沒有指定,那么這個路徑會依賴於--prefix選項 --error-log-path=/var/log/nginx/nginx_error.log \ #指定錯誤文件的路徑,Nginx將會往其中寫入錯誤日志文件,除非有其他配置 --http-log-path=/var/log/nginx/nginx_access.log \ #http訪問日志的默認路徑 --pid-path=/usr/local/nginx/run/nginx.pid \ #指定的文件將會寫入Nginx master進程的pid,通常在/var/run下 --lock-path=/usr/local/nginx/lock/nginx \ #共享存儲器互斥鎖文件的路徑 --with-http_ssl_module \ #啟用 ngx_http_ssl_module 支持(使支持 https 請求,需已安裝openssl) --with-http_realip_module \ #啟用 ngx_http_realip_module 支持(這個模塊允許從請求標頭更改客戶端的 IP 地址值,默認為關) --with-http_addition_module \ #啟用 ngx_http_addition_module 支持(作為一個輸出過濾器,支持不完全緩沖,分部分響應請求) --with-http_sub_module \ #啟用 ngx_http_sub_module 支持(允許用一些其他文本替換nginx 響應中的一些文本) --with-http_dav_module \ #啟用ngx_http_dav_module支持(增加PUT,DELETE,MKCOL:創建集合,COPY 和 MOVE 方法)默認情況下為關閉,需編譯開啟 --with-http_flv_module \ #啟用 ngx_http_flv_module 支持(提供尋求內存使用基於時間的偏移量文件) --with-http_gzip_static_module \ #啟用 ngx_http_gzip_static_module 支持(在線實時壓縮輸出數據流) --with-http_stub_status_module \ #啟用ngx_http_stub_status_module支持(獲取nginx自上次啟動以來的工作狀態) --with-http_perl_module \ #Nginx配置能夠擴展使用Perl代碼。這個選項啟用這個模塊(然而使用這個模塊會降低性能) --with-mail \ #該選項用於啟用mail模塊,該模塊默認沒有被激活 --with-mail_ssl_module \ #為了代理任何一種類型的使用SSL/TLS的mail,激活該模塊 --with-pcre \ --http-client-body-temp-path=/var/tmp/nginx/client/ \ #從客戶端收到請求后,該選項設置的目錄用於作為請求體零食存放的目錄,如果WebDAV模塊啟用,那么推薦設置該路徑為同一文件系統上的目錄作為最終的目的地 --http-proxy-temp-path=/var/tmp/nginx/proxy \ #在使用代理后,通過該選項設置存放臨時文件路徑 --http-fastcgi-temp-path=/var/tmp/nginx/fcgi \ #設置FastCGI臨時文件的目錄 --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \ #設置uWSGI臨時文件的目錄 --http-scgi-temp-path=/var/tmp/nginx/scgi #設置SCGI臨時文件的目錄 ./configure --user=www --group=www --prefix=/usr/ --conf-path=/etc/nginx/nginx.conf --sbin-path=/usr/sbin/nginx --error-log-path=/var/log/nginx/nginx_error.log --http-log-path=/var/log/nginx/nginx_access.log --pid-path=/usr/local/nginx/run/nginx.pid --lock-path=/usr/local/nginx/lock/nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_perl_module --with-mail --with-mail_ssl_module --with-pcre --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi
2.nginx編譯選項 make是用來編譯的,它從Makefile中讀取指令,然后編譯。 make install是用來安裝的,它也從Makefile中讀取指令,安裝到指定的位置。 configure命令是用來檢測你的安裝平台的目標特征的。它定義了系統的各個方面,包括nginx的被允許使用的連接處理的方法,比如它會檢測你是不是有CC或GCC,並不是需要CC或GCC,它是個shell腳本,執行結束時,它會創建一個Makefile文件。nginx的configure命令支持以下參數: --prefix=path 定義一個目錄,存放服務器上的文件 ,也就是nginx的安裝目錄。默認使用 /usr/local/nginx。 --sbin-path=path 設置nginx的可執行文件的路徑,默認為 prefix/sbin/nginx. --conf-path=path 設置在nginx.conf配置文件的路徑。nginx允許使用不同的配置文件啟動,通過命令行中的-c選項。默認為prefix/conf/nginx.conf. --pid-path=path 設置nginx.pid文件,將存儲的主進程的進程號。安裝完成后,可以隨時改變的文件名 , 在nginx.conf配置文件中使用 PID指令。默認情況下,文件名 為prefix/logs/nginx.pid. --error-log-path=path 設置主錯誤,警告,和診斷文件的名稱。安裝完成后,可以隨時改變的文件名 ,在nginx.conf配置文件中 使用 的error_log指令。默認情況下,文件名 為prefix/logs/error.log. --http-log-path=path 設置主請求的HTTP服務器的日志文件的名稱。安裝完成后,可以隨時改變的文件名 ,在nginx.conf配置文件中 使用 的access_log指令。默認情況下,文件名 為prefix/logs/access.log. --user=name 設置nginx工作進程的用戶。安裝完成后,可以隨時更改的名稱在nginx.conf配置文件中 使用的 user指令。默認的用戶名是nobody。 --group=name 設置nginx工作進程的用戶組。安裝完成后,可以隨時更改的名稱在nginx.conf配置文件中 使用的 user指令。默認的為非特權用戶。 --with-select_module --without-select_module 啟用或禁用構建一個模塊來允許服務器使用select()方法。該模塊將自動建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。 --with-poll_module --without-poll_module 啟用或禁用構建一個模塊來允許服務器使用poll()方法。該模塊將自動建立,如果平台不支持的kqueue,epoll,rtsig或/dev/poll。 --without-http_gzip_module — 不編譯壓縮的HTTP服務器的響應模塊。編譯並運行此模塊需要zlib庫。 --without-http_rewrite_module 不編譯重寫模塊。編譯並運行此模塊需要PCRE庫支持。 --without-http_proxy_module — 不編譯http_proxy模塊。 --with-http_ssl_module — 使用https協議模塊。默認情況下,該模塊沒有被構建。建立並運行此模塊的OpenSSL庫是必需的。 --with-pcre=path — 設置PCRE庫的源碼路徑。PCRE庫的源碼(版本4.4 - 8.30)需要從PCRE網站下載並解壓。其余的工作是Nginx的./ configure和make來完成。正則表達式使用在location指令和 ngx_http_rewrite_module 模塊中。 --with-pcre-jit —編譯PCRE包含“just-in-time compilation”(1.1.12中, pcre_jit指令)。 --with-zlib=path —設置的zlib庫的源碼路徑。要下載從 zlib(版本1.1.3 - 1.2.5)的並解壓。其余的工作是Nginx的./ configure和make完成。ngx_http_gzip_module模塊需要使用zlib 。 --with-cc-opt=parameters — 設置額外的參數將被添加到CFLAGS變量。例如,當你在FreeBSD上使用PCRE庫時需要使用:--with-cc-opt="-I /usr/local/include。.如需要需要增加 select()支持的文件數量:--with-cc-opt="-D FD_SETSIZE=2048". --with-ld-opt=parameters —設置附加的參數,將用於在鏈接期間。例如,當在FreeBSD下使用該系統的PCRE庫,應指定:--with-ld-opt="-L /usr/local/lib".
1、運行環境包
yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel lua-devel perl
2、額外的軟件包
LuaJit: http://luajit.org/download.html
ningx: https://nginx.org/download/nginx-1.14.2.tar.gz
pcre: https://ftp.pcre.org/pub/pcre/pcre-8.42.zip
ngx_devel_kit: https://github.com/simplresty/ngx_devel_kit/tags
lua-nginx-module https://github.com/openresty/lua-nginx-module/tags
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.14rc3.tar.gz --no-check-certificate
wget http://ftp.17gogoing.com:8852/pub/nginx/nginx_upstream_check_module-master.tar.gz —— 檢查后端服務器的狀態 nginx_goodies: https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/downloads/?tab=downloads 下載地址 —— 后端做負載均衡解決session sticky問題
注釋:所有的軟件包均下載到/usr/local/src目錄下
百度雲鏈接地址:
3、安裝編譯
cd /usr/local/src/nginx-1.14.2
patch -p1 < /usr/local/src/nginx_upstream_check_module-master/check_1.12.1+.patch
#編譯參數如下:
./configure \ --user=nginx \ --group=nginx \ --prefix=/usr/local/nginx \ --sbin-path=/usr/sbin/nginx \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --pid-path=/var/log/nginx/nginx.pid \ --lock-path=/usr/local/nginx/lock/nginx.lock \ --http-log-path=/var/log/nginx/access.log \ --with-openssl=/usr/local/src/openssl-1.0.2k \ --with-http_ssl_module \ --with-http_flv_module \ --with-http_mp4_module \ --http-proxy-temp-path=/usr/local/nginx/proxy_tmp \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --with-pcre=/usr/local/src/pcre-8.42 \ --add-module=/usr/local/src/ngx_devel_kit-0.3.0 \ --add-module=/usr/local/src/lua-nginx-module-master \ --add-module=/usr/local/src/nginx_upstream_check_module-master make -j 4 && make install