Nginx之configure選項

1. 通用配置項

  • --prefix=<path>:Nginx 安裝的根路徑,全部其餘的路徑都要依賴於該選項。
  • --sbin-path=<path>:指定 Nginx 二進制文件的路徑。若是沒有指定,那麼這個路徑會依賴於 --prefix 選項。
  • --conf-path=<path>:若是在命令行沒有指定配置文件,那麼將會經過這裏指定路徑,Nginx 將會去那裏查找它的配置文件。
  • --error-log-path=<path>:指定錯誤文件的路徑,Nginx 將會往其中寫入錯誤日誌文件,除非有其餘的配置。
  • --pid-path=<path>:指定的文件將會寫入 Nginx master 進程的 pid,一般在 /var/run 下。
  • --lock-path=<path>:共享存儲器互斥鎖文件的路徑。
  • --user=<user>:worker 進程運行的用戶。
  • --group=<group>:worker 進程運行的組。
  • --with-file-aio:爲 FreeBSD 4.3+ 和 Linux 2.6.22+ 系統啓用異步 I/O。
  • --with-debug:這個選項用於啓用調試日誌。在生產環境的系統中不推薦使用該選項。

2. 優化編譯

  • --with-cc=<path>:若是想設置一個不在默認 PATH 下的 C 編譯器。
  • --with-cpp=<path>:設置 C 預處理器的相應路徑.
  • --with-cc-opt=<options>: 指定必要的 include 文件路徑,可能 d(-I<path)指出,也多是優化(-O4)和指定一個 64 位構建。
  • --with-ld-opt=<options>:包含鏈接器庫的路徑(-L<path>)和運行路徑(-R<path>)。
  • --with-cpu-opt=<cpu>:經過該選項爲特定的 CPU 構建 Nginx。

3. mail 配置選項

  • --with-mail:該選項用於啓用 mail 模塊,該模塊默認沒有激活。
  • --with-mail_ssl_module:爲了代理任何一種類型的使用 SSL/TLS 的 mail,激活該模塊。
  • --without-mail_pop3_module:在啓用 mail 模塊後,單獨地禁用 POP3 模塊。
  • --without-mail_imap_module:在啓用 mail 模塊後,單獨地禁用 IMAP 模塊。
  • --without-mail_smtp_module:在啓用 mail 模塊後,單獨地禁用 SMTP 模塊。
  • --without-http:該選項將徹底禁用 http 模塊,若是你只想支持 mail,那麼可使用它。

對於典型的 mail 代理,可配置爲以下:數據庫

./configure -with-mail --with-mail_ssl_module --with-openssl=${BUILD_DIR}/openssl-1.0.1c

對於郵件服務器來講,如今幾乎每個郵件服務器的安裝都須要安裝 SSL/TLS,並沒沒有一個郵件代理啓用了預期功能的用戶。推薦靜態編譯 OpenSSL,以便對操做系統中的 OpenSSL 庫沒有依賴性。緩存

4. http 配置選項

  • --without-http-cache:在使用 upstream 模塊時,Nginx 可以配置本地緩存內容。這個選項可以禁用緩存。
  • --with-http_perl_module:Nginx 配置可以擴展使用 Perl 代碼。這個選項啓用這個模塊(然而使用這個模塊會下降性能)。
  • --with-perl_modules_path=<path>:對於額外嵌入的 Perl 模塊,使用該選項指定該 Perl 解析器的路徑。也能夠經過配置選項來指定 Perl 模塊解析器的位置。
  • --with-perl=<path>:若是在默認的路徑中沒有找到 Perl,那麼指定 Perl(5.6 版本以上)的路徑。
  • --http-client-body-temp-path=<path>:從客戶端收到請求後,該選項設置的目錄用於做爲請求體臨時存放的目錄。若是 WebDAV 模塊啓用,那麼推薦設置該路徑爲同一個文件系統上的目錄做爲最終的目的地。
  • --http-proxy-temp-path=<path>:在使用代理後,經過該選項設置存放臨時文件路徑。
  • --http-fastcgi-temp-path=<path>:設置 FastCGI 臨時文件的目錄。
  • --http-uwsgi-temp-path=<path>:設置 uWSGI 臨時文件的目錄。
  • --http-scgi-temp-path=<path>:設置 SCGI 臨時文件的目錄。
  • --with-http_ssl_module:若是須要對流量進行加密,那麼可使用這個選項,在 URLs 中開始部分將會是 https(須要 OpenSSL)。
  • --with-http_realip_module:若是你的 Nginx 在七層負載均衡器或者是其餘設備以後,它們將 Http 頭中的客戶端 IP 地址傳遞,那麼你將會須要啓用這個模塊。在多個客戶處於一個 IP 地址下使用。
  • --with-http_addition_module:這個模塊做爲一個輸出過濾器,使你可以在請求通過一個 location 前或者後時在該 location 自己添加內容。
  • --with-http_xslt_module:該模塊用於 XML 響應轉換,基於一個或者多個 XSLT 格式(須要 libxml2 和 libxslt 庫)。
  • --with-http_image_filter_module:該模塊被做爲圖像過濾器使用,在將圖像投遞到客戶以前進行處理(須要 libgd 庫)。
  • --with-http_geoip_module:使用該模塊,可以設置各類變量以便在配置文件中的區段使用,基於地理位置查找客戶端 IP 地址(須要 MaxMfind GeoIP 庫和相應的預編譯數據庫文件)。
  • --with-http_sub_module:該模塊實現了替代過濾,在響應中用一個字符串替代另外一個字符串。
  • --with-http_dav_module:啓用這個模塊將激活使用 WebDAV 的配置指令。請注意,這個模塊也只在有須要使用的基礎上啓用,若是配置不正確,它可能帶來安全問題。
  • --with-http_flv_module:若是須要提供 Flash 流媒體視頻文件,那麼該模塊將會提供僞流媒體。
  • --with-http_mp4_module:這個模塊支持 H.264/AAC 文件僞流媒體。
  • --with-http_gzip_static_module:當被調用的資源沒有 .gz 結尾格式的文件時,若是想支持發送預壓縮版本的靜態文件,那麼使用該模塊。
  • --with-http_gunzip_module:對於不支持 gzip 編碼的客戶,該模塊用於爲客戶解壓縮預壓縮內容。
  • --with-http_random_index_module:若是你想提供從一個目錄中隨機選擇文件的索引文件,那麼這個模塊須要被激活。
  • --with-http_secure_link_module:該模塊提供了一種機制,它會將一個哈希值連接到一個 URL 中,所以,只有那些使用正確的密碼可以計算連接。
  • --with-http_stub_status_module:啓用這個模塊後會收集 Nginx 自身的狀態信息。輸出的狀態信息可使用 RRDtool 或相似的東西來繪製成圖。

對於網絡加速/代理,可以下配置:安全

./configure --with-http_ssl_module --with-http_realip_module --with-http_geoip_module --with-http_stub_status_module --with-openssl=${BUILD_DIR}/openssl-1.0.1c

對於 Web 服務器:服務器

./configure --with-http_stub_status_module

這兩個配置不一樣之處在於它們面對的客戶,處於 Web 加速時,會考慮到 SSL 請求的終結,也包括處理代理客戶和基於客戶來源決策。處於 Web 服務時,則僅須要提供默認文件訪問能力。cookie

5. 禁用的配置選項

  • --without-http_charset_module:該字符集模塊負責設置 Content-Type 響應頭,以及從一個字符集轉換到另外一個字符集。
  • --without-http_gzip_module:gzip 模塊做爲一個輸出過濾器,在將內容投遞到客戶時對內容進行壓縮。
  • --without-http_ssi_module:該模塊是一個過濾器,用於處理 SSI 包含。若是啓用 Perl 模塊,那麼額外的 SSI 指令(perl)可用。
  • --without-http_userid_module:userid 模塊可以使得 Nginx 設置 cookies,用於客戶標識。變量 $uid_set 和 $uid_got 能夠記錄用戶跟蹤。
  • --without-http_access_module:access 模塊基於 IP 控制訪問 location。
  • --without-http_auth-basic_module:該模塊經過 Http 基自己份驗證限制訪問。
  • --without-http_autoindex_module:若是一個目錄中沒有 index 文件,那麼 autoindex 模塊收集這個目錄列出文件。
  • --without-http_geo_module:該模塊可以讓你基於客戶端 IP 地址設置配置變量,而後根據這些變量的值採起行動。
  • --without-http_map_module:map 模塊可以讓你映射一個變量到另外一個變量。
  • --without-http_split_clients_module:該模塊建立用於 A/B 測試的變量。
  • --without-http_referer_module:該模塊可以讓 Nginx 阻止基於 Referer Http 頭的請求。
  • --without-http_rewrite_module:經過 rewrite 模塊可以讓你基於變量條件改變 URI。
  • --without-http_proxy_module:使用 proxy 模塊容許 Nginx 將請求傳遞到其餘服務器或者服務器組。
  • --without-http_fastcgi_module:FastCGI 模塊可以讓 Nginx 將請求傳遞到 FastCGI 服務器。
  • --without-http_uwsgi_module:這個模塊可以使得 Nginx 將請求傳遞到 uWSGI 服務器。
  • --without-http_scgi_module:SCGI 模塊可以讓 Nginx 將請求傳遞到 SCGI 服務器。
  • --without-http_memcached_module:該模塊可以使得 Nginx 與一個 memcached 服務器進行交互,將響應放置到變量查詢中。
  • --without-http_limit_conn_module:該模塊可以使得 Nginx 基於某些鍵,一般是 IP 地址,設置鏈接限制。
  • --without-http_limit_req_module:經過該模塊,Nginx 可以限制每一個用戶的請求率。
  • --without-http_empty_gif_module:在內存中產生一個 1 像素 * 1 像素的透明 GIF 圖像。
  • --without-http_browser_module:browser 模塊容許基於 User-Agent Http 請求頭配置,變量的設置基於在該頭中發現的版本。
  • --without-http_upstream_ip_hash_module:該模塊定義了一組能夠與不一樣的代理模塊結合使用的服務器。
相關文章
相關標籤/搜索