參考地址
官方參考地址 http://nginx.org/en/docs/configure.html
其他參考地址 https://blog.csdn.net/zhangman0702/article/details/93628954
一 configure常用參數
1 常規類參數
##nginx安裝目錄 ##默認/usr/local/nginx/ --prefix=PATH ##可執行文件路徑(即nginx命令路徑) ##默認prefix/sbin/nginx --sbin-path=PATH ##模塊的安裝目錄 ##默認prefix/modules --modules-path=PATH ##配置文件 ##默認prefix/conf/nginx.conf --conf-path=PATH ##錯誤日志文件 ##默認prefix/logs/error.log --error-log-path=PATH ##pid文件 ##默認prefix/logs/nginx.pid --pid-path=PATH ##鎖文件,NGINX運行時會自動創建該文件,一台服務器上只允許運行一個NGINX服務 ##默認prefix/logs/nginx.lock --lock-path=PATH ##HTTP服務器的主請求日志文件 ##默認prefix/logs/access.log --http-log-path=PATH ##用於存儲包含客戶端請求主體的臨時文件目錄 ##默認prefix/client_body_temp --http-client-body-temp-path=PATHDIR ##用於存儲從代理服務器接收到的數據的臨時文件目錄 ##默認prefix/proxy_temp --http-proxy-temp-path=PATHDIR ##用於存儲從FastCGI服務器接收到的數據的臨時文件目錄 ##默認prefix/fastcgi_temp --http-fastcgi-temp-path=PATHDIR ##用於存儲從uwsgi服務器接收到的數據的臨時文件目錄 ##默認prefix/uwsgi_temp --http-uwsgi-temp-path=PATHDIR ##用於存儲從SCGI服務器接收到的數據的臨時文件目錄 ##默認prefix/scgi_temp --http-scgi-temp-path=PATHDIR ##運行nginx的用戶 ##默認nobody --user=USERNAME ##運行nginx的用戶組 --group=GROUPNAME ##添加第三方模塊 --add-module=PATHDIR
2 依賴類參數
##設置gcc編譯器目錄 ##一般不用設置 --with-cc=PATHDIR ##設置gcc-c++編譯器目錄 ##一般不用設置 --with-cpp=PATHDIR ##傳到C編譯器命令行的其他選項 –with-cc-opt= ##傳到C鏈接器命令行的其他選項 –with-ld-opt= ##設置CPU型號 ##為特定的CPU執行編譯操作,有效的值:pentium, pentiumpro, pentium3, pentium4, athlon, opteron, sparc32, sparc64,ppc64。 --with-cpu-opt=CPU ##設置pcre庫 ##只供源碼安裝的pcre使用 --with-pcre=PATHDIR ##設置MD5庫 ##只供源碼安裝的MD5使用 –with-md5=PATHDIR ##設置zlib庫 ##只供源碼安裝的zlib使用 --with-zlib=PATHDIR ##設置OpenSSL庫 ##只供源碼安裝的OpenSSL使用 --with-openssl=PATHDIR
3 默認禁用模塊參數的啟用
3.1 默認禁用模塊參數之常規參數的啟用
##啟用select事件驅動模型 ##默認情況下在Linux2.6以上的內核版本中,Nginx支持使用Epoll高效的事件模型,可在配置文件中使用"use epoll"開啟 --with-select_module ##啟用poll事件驅動模型 ##默認情況下在Linux2.6以上的內核版本中,Nginx支持使用Epoll高效的事件模型,可在配置文件中使用"use epoll"開啟 --with-poll_module ##啟用線程池功能 ##一般情況下主機有幾核處理器在啟動Nginx時就會創建幾個Worker工作進程 --with-threads ##啟用異步文件I/O支持 ##一般用於大文件傳輸的場景下 ##可能會報錯,請謹慎使用 --with-filr-aio ##啟用動態模塊兼容性 --with-compat
3.2 默認禁用模塊參數之stream相關參數的啟用
##啟用Stream_Core模塊,nginx的核心模塊 ##用於實現TCP/UDP代理和四層負載均衡 ##默認不啟用,nginx1.9.0版本開始使用 --with-stream ##啟用Stream_SSL模塊 ##提供SSL/TLS協議支持 ##默認不啟用,需要安裝OpenSSL依賴,需要啟用--with-stream模塊 --with-stream_ssl_module ##啟用Stream_Realip模塊 ##用於修改客戶端請求頭中的客戶端IP值,一般用於反向代理中,將真實的客戶端IP傳送給后端的應用服務器 ##默認不啟用,需要啟用--with-stream模塊 --with-stream_realip_module
3.3 默認禁用模塊參數之HTTP相關參數的啟用
##啟用HTTPS模塊 ##用於構建HTTPS服務 ##默認未啟用,需要安裝OpenSSL依賴 --with-http_ssl_module ##啟用HTTP_V2模塊 ##新HTTP協議,比HTTP1好 ##默認未啟用 --with-http_v2_module ##啟用HTTP_Realip模塊 ##用於修改請求頭中客戶端IP值,將真實的客戶端IP傳送給后端客戶端 ##默認未啟用 --with-http_realip_module ##啟用HTTP_Addition模塊 ##用於在響應之后和之前添加文本 ##默認未啟用 --with-http_addition_module ##啟用HTTP_Xslt模塊 ##過濾器,通過一個或多個XSLT樣式表轉換XML響應 ##也可使用動態模塊即--with-http_geoip_module=dynamic ##默認未啟用,需要安裝libxml2和libxslt依賴 --with-http_xslt_module ##啟用HTTP_Image_Filter模塊 ##集成圖片處理器,可以轉換JPEG,GIF,PNG和WebP格式的圖像 ##也可以使用動態模塊即--with-http_image_filter_module=dynamic ##默認未啟用 --with-http_image_filter_module ##啟用HTTP_Geoip模塊 ##根據客戶端IP地址得到其所在國家,處理來自不同地區的訪問 ##也可使用動態模塊即--with-http_geoip_module=dynamic ##默認未啟用,需要安裝MaxMind GeoIP依賴 --with-http_geoip_module ##啟用HTTP_Sub模塊 ##用於修改響應內容,將一個指定的字符串替換為另一個指定的字符串 ##默認未啟用 --with-http_sub_module ##啟用HTTP_DAV模塊 ##通過WebDAV協議提供文件管理自動化,類似WEB文件管理器,對服務器文件進行管理 ##默認未啟用 --with-http_dav_module ##啟用HTTP_FLV模塊 ##為Flash Video(FLV)文件提供偽流服務器端支持,允許在網頁上播放FLV格式的視頻 ##默認未啟用 --with-http_flv_module ##啟用HTTP_MP4模塊 ##為MP4文件提供偽流服務器端支持,允許在網頁上播放MP4格式的視頻 ##默認未啟用 --with-http_mp4_module ##啟用HTTP_Gunzip模塊 ##用於為不支持"gzip"編碼方式的客戶端解壓響應,服務器會本地解壓數據,將數據傳送給瀏覽器客戶端 ##默認未啟用 --with-http_gunzip_module ##啟用HTTP_Gzip_Static模塊 ##用於將靜態內容壓縮成".gz"為擴展名的預壓縮文件,緩存在本地並在響應時發送 ##默認未啟用 --with-http_gzip_static_module ##啟用HTTP_Auth_Request模塊 ##請求驗證,基於子請求的結果實現客戶端授權,若子請求返回的狀態碼為200,則允許訪問,若返回401或403,則拒絕訪問 ##默認未啟用 --with-http_auth_request_module ##啟用HTTP_Random_Index模塊 ##處理以斜杠(' /')結尾的請求,從目錄中選擇一個隨機文件作為索引文件 ##默認未啟用 --with-http_random_index_module ##啟用HTTP_Secure_Link模塊 ##防盜鏈模塊,用於檢查請求鏈接的權限以及是否過期,多用於文件下載防盜鏈 ##默認未啟用 --with-http_secure_link_module ##啟用HTTP_Degradation模塊 ##用於當主機剩余內存較低時,用戶請求訪問時Nginx會對某些"location"的請求返回204或444的響應碼 ##默認未啟用 --with-http_degradation_module ##啟用HTTP_Slice模塊 ##將請求拆分為子請求,每個子請求返回一定范圍的響應 ##默認未啟用 --with-http_slice_module ##啟用HTTP_Stub_Status模塊 ##提供對基本狀態信息的訪問,管理員訪問這個頁面可以獲取基本信息,一般用於監控nginx的運行狀態 ##默認未啟用 --with-http_stub_status_module
3.4 默認禁用模塊參數之Mail相關參數的啟用
##啟用POP3/IMAP4/SMTP郵件代理服務器 ##也可以使用動態模塊即 --with-mail=dynamic ##默認不啟用 --with-mail ##啟用Mail_SSL模塊 ##設置郵件代理服務器支持SSL/TLS協議 ##默認不啟用,需要安裝OpenSSL依賴 --with-mail_ssl_module
##禁用Stream_Limit_Conn模塊 ##用於Nginx四層負載功能中限制並發連接數量以及下載帶寬限制功能 ##當開啟Stream_Core模塊時自動開啟此功能,不建議禁用 --without-stream_limit_conn_module ##禁用Stream_Access模塊 ##用於Nginx四層負載功能中限制對某些客戶端地址的訪問 ##當開啟Stream_Core模塊時自動開啟此功能,不建議禁用 --without-stream_access_module ##禁用Stream_Geo模塊 ##用於Nginx四層負載功能中從指定變量中獲取客戶端的IP地址,並將其嵌入到另外一個變量中 ##默認情況下從"$remote_addr"變量中取得客戶端的IP地址 ##當開啟Stream_Core模塊時自動開啟此功能,不建議禁用 --without-stream_geo_module ##禁用Stream_Map模塊 ##用於Nginx四層負載功能中創建變量,但創建的變量的值取決於其他變量的值 ##當開啟Stream_Core模塊時自動開啟此功能,不建議禁用 --without-stream_map_module ##禁用Stream_Splic_Clients模塊 ##用於Nginx四層負載功能中創建適用於A/B測試的變量 ##當開啟Stream_Core模塊時自動開啟此功能。 --without-stream_split_clients_module ##禁用Stream_Return模塊 ##用於Nginx四層負載功能中向客戶端發送指定值,然后關閉連接 ##當開啟Stream_Core模塊時自動開啟此功能,不建議禁用 --without-stream_return_module ##禁用Stream_Upstream_Hash模塊 ##提供四層負載均衡的一種調度方法,一般用於基於SessionID的會話保持場景下 ##當開啟Stream_Core模塊時自動開啟此功能,不建議禁用 --without-stream_upstream_hash_module ##禁用Stream_Upstream_IP_Hash模塊 ##提供四層負載均衡的一種調度方法,基於來源IP的會話保持方法,不過它是基於客戶端IP的Hash方法,客戶端可能受動態IP影響會發生變化 ##一般很少采用 ##當開啟Stream_Core模塊時自動開啟此功能。 --without-stream_upstream_least_conn_module ##禁用Stream_Upstream_Zone模塊 ##用於Nginx四層負載功能,可以將由"Upstream"指令定義的服務器組運行時的狀態存儲在共享內存區域中 ##當開啟Stream_Core模塊時自動開啟此功能 --without-stream_upstream_zone_module
4.2 默認啟用模塊參數之HTTP相關參數的禁用
##禁用HTTP_Core模塊 ##為Nginx的核心模塊,用於提供HTTP服務所有核心功能 ##不建議禁用 --without-http ##禁用HTTP緩存 --without-http-cache ##禁用HTTP_Charset模塊 ##用於將指定的字符集添加到"Content-Type"響應頭字段中,以及將數據從一個字符集轉換為另一個字符集 ##用於字符集設置,不建議禁用 --without-http_charset_module ##禁用HTTP_Gzip模塊 ##此模塊用於HTTP響應內容傳輸壓縮,可以將響應內存在傳輸時將其壓縮成Gzip編碼格式的響應傳送給客戶端 ##使用Gzip編碼格式響應內容體積會變小,會提高傳輸效率,不建議禁用 --without-http_gzip_module ##禁用HTTP_SSI模塊 ##過濾器,用於處理通過它響應中的SSI(Server Side Includes)命令 --without-http_ssi_module ##禁用HTTP_Userid模塊 ##用於設置適用於客戶端標識的Cookie --without-http_userid_module ##禁用HTTP_Access模塊 ##用於限制對某些客戶端地址的訪問,Allow or Deny ##不建議禁用 --without-http_access_module ##禁用HTTP_Auth_Basic模塊 ##用於HTTP基本身份驗證,使用用戶名和密碼來限制對資源的訪問 --without-http_auth_basic_module ##禁用HTTP_Mirror模塊 ##用於將正式環境的流量拷貝到鏡像(測試)環境下,一般用於測試環境引入真實環境的流量實現對測試環境的壓力測試 --without-http_mirror_module ##禁用HTTP_Autoindex模塊 ##用於在處理以斜杠字符('/')結尾的請求,並在找不到索引文件的情況下生成目錄列表 --without-http_autoindex_module ##禁用HTTP_Geo模塊 ##用於從指定變量中獲取客戶端的IP地址,並將其嵌入到另外一個變量中 --without-http_geo_module ##禁用HTTP_Map模塊 ##用於創建變量,但創建的變量的值取決於其他變量的值 --without-http_map_module ##禁用HTTP_Splic_Clients模塊 ##用於創建適用於A/B測試的變量 ##AB測試也稱之為拆分測試:將一個項目的兩個不同版本發布,用戶喜歡哪個版本就發布哪個版本 --without-http_split_clients_module ##禁用HTTP_Referer模塊 ##用於防盜鏈,用於阻止對請求頭部"referer"字段具有無效值的請求訪問 --without-http_referer_module ##禁用HTTP_Rewerte模塊 ##用於地址重寫,用於將來源請求地址重定向到指定的地址上,可以保護真實的地址,增加安全性 ##需要安裝pcre依賴,不建議禁用 --without-http_rewrite_module ##禁用HTTP_Proxy模塊 ##用於將請求代理傳遞到另外一台WEB服務器去處理 ##Nginx的核心模塊,不建議禁用 --without-http_proxy_module ##禁用HTTP_FastCGI模塊 ##用於將請求代理傳遞到另外一台FastCGI服務器去處理,一般用於反代PHP ##不建議禁用 --without-http_fastcgi_module ##禁用HTTP_UwSGI模塊 ##用於將請求代理傳遞給另外一台UwSGI服務器去處理 --without-http_uwsgi_module ##禁用HTTP_SCGI模塊 ##用於將請求代理傳遞給另外一台SCGI服務器去處理 --without-http_scgi_module ##禁用HTTP_Grpc模塊 ##用於將請求代理傳遞給另外一台Grpc服務器去處理 --without-http_grpc_module ##用HTTP_Memcached模塊 ##用於Nginx從Memcached服務器獲取響應內容 ##一般用於Nginx+后端服務器+Memcached的環境下 ##Memcached緩存服務器是基於內存的所以可以減少磁盤IO的使用,提高響應效率 --without-http_memcached_module ##禁用HTTP_Limit_Conn模塊 ##用於限制並發連接數量以及下載帶寬限制 --without-http_limit_conn_module ##禁用HTTP_Limit_Req模塊 ##用於限制請求數量,可以限制請求的頻率 --without-http_limit_req_module ##禁用HTTP_Empty_Gif模塊 ##會在內容中常駐的一個1X1的透明空白的GIF圖像,當用戶請求時,返回該圖像,一般用於測試 --without-http_empty_gif_module ##禁用HTTP_Browser模塊 ##用於創建變量,變量的值取決於請求頭中"user-agent"的值 ##一般用於區別新式或者舊式瀏覽器 --without-http_browser_module ##禁用HTTP_Upstream_Hash模塊 ##提供了由"Upstream"指令定義的一組服務器的負載均衡方法"Hash" ##會話保持 ##不建議禁用 --without-http_upstream_hash_module ##禁用HTTP_Upstream_IP_Hash模塊 ##提供了由"Upstream"指令定義的一組服務器的負載均衡方法"ip_hash" ##用於會話保持,不過它是基於客戶端IP的Hash方法,客戶端可能受動態IP影響會發生變化 ##一般不建議采用 --without-http_upstream_ip_hash_module ##禁用HTTP_Upstream_Least_Conn模塊 ##提供了由"Upstream"指令定義的一組服務器的負載均衡方法"least_conn" ##用於將請求傳遞到具有最少活動連接、權重較高(性能最好)的后端服務器上去處理。 --without-http_upstream_least_conn_module ##禁用HTTP_Upstream_Keepalive模塊 ##可以為由"Upstream"指令定義的一組服務器提供保持長連接的功能 ##使用它則會為每個Worker工作進程與后端服務器保持空閑的長連接,連接數由"keepalive"指令指定 ##當空閑的長連接數量超過指定值時,將關閉最近最少使用的連接 --without-http_upstream_keepalive_module ##用HTTP_Upstream_Zone模塊 ##可以將由"Upstream"指令定義的服務器組運行時的狀態存儲在共享內存區域中 --without-http_upstream_zone_module
4.3 默認啟用模塊參數之Mail相關參數的禁用
##禁用Mail_POP3模塊 ##當啟用HTTP_Mail_Core模塊時,若不想使用POP3協議,則可以考慮單獨禁用此模塊 ##不建議禁用 --without-mail_pop3_module ##禁用Mail_IMAP模塊 ##當啟用HTTP_Mail_Core模塊時,若你不想使用IMAP4協議,則可以考慮單獨禁用此模塊 ##不建議禁用 --without-mail_imap_module ##禁用Mail_SMTP模塊 ##當啟用HTTP_Mail_Core模塊時,若你不想使用SMTP協議,則可以考慮單獨禁用此模塊 ##不建議禁用 --without-mail_smtp_module
二 配置示例
./configure\
--prefix=/etc/nginx\
--sbin-path=/usr/sbin/nginx\
--modules-path=/usr/lib/nginx/modules\
--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\
--http-client-body-temp-path=/var/cache/nginx/client_temp\
--http-proxy-temp-path=/var/cache/nginx/proxy_temp\
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp\
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp\
--http-scgi-temp-path=/var/cache/nginx/scgi_temp\
--user=nginx\
--group=nginx\
--with-compat\
--with-threads\
--with-http_addition_module\
--with-http_auth_request_module\
--with-http_dav_module\
--with-http_flv_module\
--with-http_gunzip_module\
--with-http_gzip_static_module\
--with-http_mp4_module\
--with-http_random_index_module\
--with-http_realip_module\
--with-http_secure_link_module\
--with-http_slice_module\
--with-http_ssl_module \
--with-http_stub_status_module\
--with-http_sub_module\
--with-http_v2_module\
--with-mail\
--with-mail_ssl_module\
--with-stream\
--with-stream_realip_module\
--with-stream_ssl_module\
--with-stream_ssl_preread_module\