比較全面的Nginx相關配置說明

 

configure支持的路徑相關參數

     參數名稱

   意義

默認值

--prefix=PATH Nginx安裝部署後的根目錄 默認值爲/usr/local/nginx目錄,注意:這個目標的設置會影響其他參數中的相對目錄.例如.如果沒有設置 --sbin-path=/sbin/niginx,那麼實際上可執行文件會被放到/usr/local/nginx/sbin/nginx中
--sbin-path=PATH 可執行文件的放置路徑 <prefix>/sbin/nginx
--conf-path=PATH 配置文件的放置路徑 <prefix>/conf/nginx.conf
--error-log-path=PATH error日誌文件的放置路徑,error日誌用於定位問題,可輸出多種級別,(包括debug調試級別)的日誌,他的配置非常的靈活,可以在nginx.conf裏配置爲不同請求的日誌並輸入到不同的log文件中,這裏默認的Nginx核心日誌路徑 <prefix>/logs/error.log
--pid-path=PATH pid文件的存放路徑,這個文件裏僅以ASCII碼存放着Nginx master的進程ID,有個這個進程ID,在使用命令行(例如 nginx -s reload ) 通過讀取master進程ID向master進程發送信號時.才能對運行中的Nginx服務產生作用 <prefix>/logs/nginx.pid
--lock-path=PATH lock 文件的放置路徑 <prefix>/logs/nginx.lock
--builddir=DIR configure 執行時於編譯期間產生的臨時文件放置目錄,包括產生的Makefile,C源文件, 目標文件,可執行文件等 <nginx source path>/objs
--with-perl_modules_path=PATH perl module 放置的路徑,只有使用了第三方的perl module 才需要配置這個路徑
--with-perl=PATH perl binary 放置的路徑, 如果配置的Nginx會執行Perl腳本,那麼就必須要設置此路徑
--http-log-path=PATH access 日誌放置的位置,每一個HTTP請求在結束時都會記錄的訪問日誌 <prefix>/logs/access.log
--http-client-body-temp-path=PATH 處理HTTP請求時如果請求的包體需要暫時存放到臨時磁盤文件中,則把這樣的臨時文件放置到該路徑下 <prefix>/client_body_temp
--http-proxy-temp-path=PATH Nginx作爲HTTP反向代理服務器時,上游服務器產生的HTTP包體在需要臨時存放在磁盤文件時,將放置在此目錄中 <prefix>/proxy_temp
--http-fstcgi-temp-path=PATH Fastcgi 所使用臨時文件的放置目錄 <prefix>/fastcgi_temp
--http-uwsgi-temp-path=PATH uWSGI所使用臨時文件的放置目錄 <prefix>/uwsgi_temp
--http-scgi-temp-path=PATH SCGI所使用臨時文件的放置目錄 <prefix>/scgi_temp

 

configure 支持的編譯相關參數
編譯參數 意義
--with-cc=PATH C 編譯器的路徑
--with-cpp=PATH C預編譯器的路徑
--with-cc-opt=OPTIONS 如果 希望在Nginx編譯期間制定加入一些編譯選項,如指定宏或者使用-I加入某些需要包含的目錄,這是可以使用該參數達到目的
--with-ld-opt=OPTIONS 最終的二進制可執行文件是由編譯後生成的目標文件與一些第三方連接生成的.在執行連接操作時可能會需要指定連接參數, --with-Id-opt 就是用於加入連接時的參數.例如,如果我們希望將某個庫連接到Nginx程序中,需要在這裏加入 --with-Id-opt=llibraryName -LlibraryPath, 其中libraryName是目標庫的名稱,libraryPath 則是目標庫所在的路徑
--with-cpu-opt=CPU 指定CPU處理器架構, 只能從以下取值中選擇, Pentium, pentiumpro, pentium3, Pentium4, athlon, opteron, sparc32, sparc64, ppc64

 

PCRE的設置參數
PCRE庫的設置參數 意義
--without-pcre 如果確認Nginx不用解析正則表達式,也就是說,nignx.conf 配置文件中不會出現正則表達式,那麼可以使用這個參數
--with-pcre 強制使用 PCRE庫
--with-pcre=DIR 指定PCRE庫的源碼位置, 在編譯Nginx時會進入該目錄編譯PCRE源碼
--with-pcre-opt=OPTIONS 編譯PCRE源碼時希望加入的編譯選項

 

OpenSSL的設置參數
OpenSSL庫的設置參數 意義
--with-openssl=DIR

指定OpenSSL庫的源碼位置,在編譯Nginx時會進入該目錄編譯OpenSSL源碼

注意:如果web服務器支持HTTPS 也就是SSL協議, Nginx 要求必須使用OpenSSL.可以訪問 http://www.openssl.org/免費下載

--with-openssl-opt=OPTIONS 編譯OpenSSl源碼時希望加入的編譯選項

 

原子庫的設置參數
atomic(原子)庫的設置參數 意義
--with-libatomic 強制使用 atomic庫, atomic庫是CPU架構獨立的一種原子操作的實現.他支持一下體系架構:x86(包括 x86_64),PPC64,Sparc64(V9或者更高的版本)或者安裝了GCC4.0及更高的版本的架構,
--with-libatomic=DIR atomic庫所在的位置

 

散列函數庫的設置參數
散列函數庫的設置參數 意義
--with-MD5=DIR

指定MD5庫的源碼位置,在編譯Nginx時會進入該目錄編譯MD5源碼

注意:Nginx源碼中已經有了MD5算法的實現,如果沒有特殊的要求,那麼完全可以使用Nginx自身實現的MD5算法

--with-MD5-opt=OPTIONS 編譯MD5源碼時希望加入的編譯選項
--with-MD5-asm 使用MD5的彙編源碼
--with-SHA1=DIR

指定SHA1庫的源碼位置,在編譯Nginx時會進入該目錄編譯SHA1源碼,

注意: OpenSSL 中已經有了SHA1的算法實現,如果已經安裝了OpenSSl那麼完全可以使用OpenSSl實現的SHA1算法的實現

--with-SHA1-opt=OPTIONS 編譯SHA1源碼是希望加入的編譯選項
--with-SHA1-asm 使用SHA1的彙編源碼

 

zlib庫的設置參數
zlib庫的設置參數 意義
--with-zlib=DIR 指定zlib庫的源碼位置,在編譯Nginx時會進入該目錄編譯zlib源碼,如果使用了gzip壓縮功能,就需要zlib庫的支持
--with-zlib-opt=OPTIONS 編譯zlib源碼時希望加入的 編譯選項
--with-zlib-asm=CPU 指定對特定的CPU使用zlib庫的彙編優化功能,目前僅支持兩種架構 pentium 和 pentiumpro
configure 支持的事件模塊參數
編譯參數 意義
--with-rtsig_module 使用rtsig module 處理事件驅動,默認情況下,Nginx是不安裝rtsig module module 的, 即不會把rtsig module 編譯進最終的Nginx二進制程序中
--with-select-module

使用select module 處理時間驅動

select 是 Linux提供的一種多路複用機制, 在epoll調用沒有誕生前, 例如在Linux 2.4及其之前的內核中,selct用於支持服務器提供的高併發連接

默認情況下,Nginx是不安裝select module 的,但是如果沒有找到其他的更好的事件模塊,該模塊將會被安裝

--without-select_module 不安裝select_module模塊
--with-poll-module

使用poll module 處理時間驅動

poll 的性能與select 類似. 在大量併發連接下性能都遠不如epoll.默認情況下,Nginx是不安裝poll module 的

--without-poll_module 不安裝pollmodule
--with-aio-module

使用AIO方式處理時間驅動

注意:這裏的aio module 只能與FreeBSD操作系統上的kqueue時間處理機制合作,Linux上無法使用,默認情況下是不安裝aio moudule的

configure 中默認編譯到Nginx中的HTTP模塊參數
默認安裝的HTTP模塊 意義
--without-http_charset_module 不安裝 http charset module 這個模塊可以將服務器發出的HTTP響應重編碼
--without-http_gzip_module 不安裝http gzip module 在服務器發出HTTP響應包中,這個模塊可以按照配置文件制定的content-type對特定大小的HTTP響應包體執行gzip壓縮
--without-http_ssi_module 不安裝 http ssi module 該模塊可以在向用戶返回的HTTP響應包體中加入特定的內容,如HTML文件中固定的頁頭和頁尾
--without-http_userid_module 不安裝http userid module 這個模塊可以通過HTTP請求頭部信息裏的一些字段認證用戶信息,以確定請求是否合法
--without-http_access_module 不安裝http auth basic module 這個模塊可以根據IP地址限制能夠訪問服務器的客戶端
--without-http_auth_basic_module 不安裝http auth basic module 這個模塊可以提供最簡單的用戶名/密碼認證
--without-http_autoindex_module 不安裝http autoindex module 該模塊提供簡單的目錄瀏覽功能
--without-http_geo_module 不安裝http geo module 這個模塊可以定義一些變量, 這些變量的值將於客戶端IP地址關聯,這樣Nginx針對不同的地區的客戶端(根據IP地址判斷)返回不一樣的結果,例如不同地區顯示不同語言的網頁
--without-http_map_module 不安裝 http map module 這個模塊可以建立一個key/value映射表,不同的key得到相應的value,這樣可以針對不同的URL做特殊處理.例如302 重定向響應時, 可以期望URL不同時返回的Location字段也不一樣
--without-http_split_clients_module 不安裝 http split client module 該模塊會根據客戶端的信息 例如:IP地址 header頭,cookies等來區分處理
--without-http_referer_module 不安裝http referer module 該模塊可以根據請求中的referer字段來拒絕請求
--without-http_proxy_module 不安裝http proxy module 該模塊提供基本的HTTP反向代理功能
--without-http_rewrite_module 不安裝http rewrite module 該模塊提供HTTP請求在Nginx服務器內部的重定向功能,依賴PCRE庫
--without-http_fastcgi_module 不安裝 http fastcgi module 該模塊提供FastCGI功能
--without-http_uwsgi_module 不安裝 http uwsgi module 該模塊提供wWSCGI功能
--without-http_scgi_module 不安裝http scgi module 該模塊提供SCGI 功能
--without-http_memcached_module 不安裝 http memcached module 不安裝http memcached module 該模塊可以使得Nginx直接由上游的memcached服務讀取數據,並簡單的適配成HTTP響應返回給客戶端
--without-http_limit_zone_module 不安裝http limit zone module 該模塊針對某個IP地址限制併發連接數 例如:是Nginx對一個IP地址僅允許一個連接
--without-limit_req_module 不安裝http limit req module 該模塊針對某個IP地址限制併發連接數
--without-http_empty_gif_module 不安裝http empty gif module 該模塊可以使得Nginx在收到無效請求時立即返回內存中的1X1像素的gif圖片 這種好處在於,對於明顯的無效請求不會去試圖浪費服務器資源
--without-http_brower_module 不安裝 http browser module 該模塊會根據HTTP請求中的user-agent字段(該字段通常由瀏覽器填寫)來識別瀏覽器
--without-http_upstream_ip_hash_module 不安裝http upstream ip hash module 該模塊提供當Nginx與後端server建立連接時, 會根據IP做散列運算來決定與後端哪臺server通信,這樣可以實現負載均衡

 

configure中默認不會編譯到Nginx中的HTTP模塊參數
可選的HTTP模塊 意義
--with-http_ssl_module

安裝http ssl module. 該模塊使Nginx支持SSL協議,提供HTTPS服務.

注意:該模塊的安裝依賴於OpenSSL開源軟件,即首先應確保已經在之前的參數中配置了OpenSSL

--with-http_realip_module 安裝http realip module 該模塊可以從客戶端請求裏的header信息(如X-Real-IP 或者 X-Forwarded-For)中獲取真正的客戶端IP地址
--with-http_addition_module 安裝http addition module 該模塊可以在返回客戶端的HTTP包體頭部或者尾部增加內容
--with-http-xslt-module

安裝http xslt module 這個模塊可以使XML格式的數據再發給客戶端前加入XSL渲染

注意:這個模塊依賴於libxml2和libxslt庫,安裝它之前首先確保上述兩個軟件已經安裝

--with-http_image_filter_module

安裝http image_filter module 這個模塊將符合配置的圖片實時壓縮爲指定大小(width*height)的縮略圖在發送給客戶,目前支持JPEG,PNG,GIF格式.

注意:這個模塊依賴於開源的libgd庫,在安裝前確保操作系統已經安裝了libgd

--with-http_geoip_module

安裝http geoip module 該模塊可以依據MaxMaind GeoIP的IP地址數據庫對客戶端的IP地址得到實際的地理位置信息.

注意:該庫依賴於MaxMind GeoIP的庫文件,可以訪問下載地址獲取

--with-http_sub_moduel

安裝http sub module 該模塊可以在Nginx返回客戶端的HTTP響應包中將指定的字符串替換爲自己需要的字符串

例如:在HTML的返回中.將</head>替換爲</head><script language='JavaScript' src='$script'></script>

--with-http_dav_module 安裝 http dav module 這個模塊可以讓Nginx支持WebDav標準,如支持Webdav協議中的PUT,DELETE,COPY,MOVE,MKCOL等請求
--with-http_mp4_module

安裝http MP4 module 該模塊使客戶端可以觀看,拖動MP4視頻

--with-http_gzip_static_module 安裝http gzip static module 如果採用gzip 模塊把一些文件進行gzip格式壓縮後再返回給客戶端,那麼對同一個文件每次都會重新壓縮,這是比較消耗服務器CPU資源的.gzip static 模塊可以在做gzip壓縮前.先查看相同位置是否已經做過gzip壓縮的.gz文件.如果有,就直接返回,這樣就可以預現在服務器上做好文檔的壓縮,給CPU減負
--with-http_random_index_module

安裝http random index module 該模塊在客戶端訪問某個目錄時,隨機返回該目錄下的任意文件.

--with-http_secure_link_module

安裝http sceure index module 該模塊提供一種驗證請求是否有效的機制,

例如:它會驗證URL中需要加入的token參數是否屬於特定的客戶端發來的.以及檢查時間戳是否過期.

--with-http_degradation_module 安裝http degradation module 該模塊針對一些特殊的系統調用(如 sbrk) 做一些優化, 如直接返回HTTP響應碼爲204 或 444  目前不支持Linux系統
--with-http_stub_status_module 安裝http stub status module 該模塊可以讓運行中的Nginx提供性能統計頁面,獲取相關的併發連接.請求的信息
--with-google_perftools_module 安裝google perftools module 該模塊提供google的性能測試工具
   

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章