centos編譯安裝nginx,及其編譯參數解析


先來一個簡單的安裝方法:

1.下載安裝編譯環境

yum install pcre-devel zlib-devel openssl-devel

或   yum -y groupinstall "Development Tools"

2.下載ngix代碼並解壓

 wget http://nginx.org/download/nginx-1.3.4.tar.gz
 tar zvxf 1.3.4.tar.gz


3.進入解壓后的目錄
 
cd nginx-1.3.4


4.配置nginx

./configure --prefix=/opt/nginx --with-http_stub_status_module
解釋: --prefix 為安裝路徑,--with-為需要安裝的模塊,具體可以運行./configure --help 查看有效模塊

5.編譯並安裝 nginx
make && make install

6.啟動 nginx    /opt/nginx/sbin/nginx
停止 nginx      /opt/nginx/sbin/nginx -s stop
重載 nginx     /opt/nginx/sbin/nginx -s reload


方法二:

一、准備工作

1.1、安裝 OpenSSL(方法自行搜索)
 
1.2、准備 pcre 庫
 
pere 是為了讓 nginx 支持正則表達式。只是准備,並不安裝,是為了避免在64位系統中出現錯誤。
 

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.30.tar.gz
tar -zxf pcre-8.30

 
1.3、准備 zlib 庫 

同樣只是准備,並不安裝,是為了避免在64位系統中出現錯誤。

wget http://sourceforge.net/projects/libpng/files/zlib/1.2.6/zlib-1.2.6.tar.gz/download
tar -zxf zlib-1.2.6.tar.gz

二、編譯安裝
 
2.1、下載、創建臨時目錄
 
wget http://nginx.org/download/nginx-1.1.9.tar.gz
tar -zxf nginx-1.1.9.tar.gz
cd nginx-1.1.9
mkdir -p /var/tmp/nginx

2.2、編譯與安裝
 
./configure --prefix=/usr/local/nginx \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--with-http_ssl_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_realip_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-mail --with-mail_ssl_module \
--with-pcre=../pcre-8.30 \
--with-zlib=../zlib-1.2.6 \
--with-debug \
--http-client-body-temp-path=/var/tmp/nginx/client \
--http-proxy-temp-path=/var/tmp/nginx/proxy \
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/

可參考文末:Nginx編譯參數解析
 
–prefix #nginx安裝目錄,默認在/usr/local/nginx
  –pid-path #pid問件位置,默認在logs目錄
 –lock-path #lock問件位置,默認在logs目錄
 –with-http_ssl_module #開啟HTTP SSL模塊,以支持HTTPS請求。
 –with-http_dav_module #開啟WebDAV擴展動作模塊,可為文件和目錄指定權限
 –with-http_flv_module #支持對FLV文件的拖動播放
 –with-http_realip_module #支持顯示真實來源IP地址
 –with-http_gzip_static_module #預壓縮文件傳前檢查,防止文件被重復壓縮
 –with-http_stub_status_module #取得一些nginx的運行狀態
 –with-mail #允許POP3/IMAP4/SMTP代理模塊
 –with-mail_ssl_module #允許POP3/IMAP/SMTP可以使用SSL/TLS
  –with-pcre=../pcre-8.11 #注意是未安裝的pcre路徑
 –with-zlib=../zlib-1.2.5 #注意是未安裝的zlib路徑
 –with-debug #允許調試日志
 –http-client-body-temp-path #客戶端請求臨時文件路徑
 –http-proxy-temp-path #設置http proxy臨時文件路徑
 –http-fastcgi-temp-path #設置http fastcgi臨時文件路徑
 –http-uwsgi-temp-path=/var/tmp/nginx/uwsgi #設置uwsgi 臨時文件路徑
 –http-scgi-temp-path=/var/tmp/nginx/scgi #設置scgi 臨時文件路徑
 
2.3、開機自啟動 nginx 腳本

vim /etc/init.d/nginx

進入編輯模式,鍵入以下腳本內容:

#!/bin/bash 

#chkconfig: - 85 15 
#description: Nginx is a World Wide Web server. 
#processname: nginx 

nginx=/usr/local/nginx/sbin/nginx 
conf=/usr/local/nginx/conf/nginx.conf 

case $1 in 
       start) 
              echo -n "Starting Nginx" 
              $nginx -c $conf 
              echo " done" 
       ;; 

       stop) 
              echo -n "Stopping Nginx" 
              killall -9 nginx 
              echo " done" 
       ;; 

       test) 
              $nginx -t -c $conf 
       ;; 

        reload) 
              echo -n "Reloading Nginx" 
              ps auxww | grep nginx | grep master | awk '{print $2}' | xargs kill -HUP 
              echo " done" 
       ;; 

        restart) 
                $0 stop 
                $0 start 
       ;; 

       show) 
              ps -aux|grep nginx 
       ;; 

       *) 
              echo -n "Usage: $0 {start|restart|reload|stop|test|show}" 
       ;; 

esac

保存以上腳本后,執行以下操作

chkmod +x /etc/init.d/nginx
chkconfig --add nginx 
chkconfig nginx on

附錄:nginx虛擬主機配置

server {
 listen      80;
 server_name vps.xj123.info;
 location / {
 root   html/vps;
 index index.html index.htm;
     }
 }
 

 提示:可以使用nginx -t來檢驗語法是否有問題,如圖所示: 


 

nginx編譯參數解析

/configure --help --help 顯示本提示信息 --prefix=PATH 設定安裝目錄 --sbin-path=PATH 設定程序文件目錄 --conf-path=PATH 設定配置文件(nginx.conf)目錄 --error-log-path=PATH 設定錯誤日志目錄 --pid-path=PATH 設定pid文件(nginx.pid)目錄 --lock-path=PATH 設定lock文件(nginx.lock)目錄 --user=USER 設定程序運行的用戶環境(www) --group=GROUP 設定程序運行的組環境(www) --builddir=DIR 設定程序編譯目錄 --with-rtsig_module 允許rtsig模塊 rtsig模塊是一種實時信號,在Linux 2.2.19 默認情況下,實時信號連接數不超過1024,但是對於高負載是肯定不夠的。因此通過調整內核參數/proc/sys/kernel/rtsig-max達到效果。但是Linux 2.6.6-mm2開始,這個參數不再可用,並為每個進程有一個獨立的信號隊列,數字是由RLIMIT_SIGPENDING確定。當隊列變得滿載時,nginx開始拋棄連接並使用poll方法,直到負載恢復正常。 --with-select_module 允許select模塊(一種輪詢模式,不推薦用在高載環境) --without-select_module 不使用select模塊 標准連接模式。默認情況下自動編譯方式。您可以啟用或禁用通過使用-select_module和不帶- select_module配置參數這個模塊。 --with-poll_module 允許poll模塊(一種輪詢模式,不推薦用在高載環境) 標准連接模式。默認情況下自動編譯方式。 --without-poll_module 不使用poll模塊 --with-http_ssl_module 允許ngx_http_ssl_module模塊(Apache對應:mod_ssl) --with-http_realip_module 允許ngx_http_realip_module模塊(mod_rpaf) 此模塊支持顯示真實來源IP地址,主要用於NGINX做前端負載均衡服務器使用。 --with-http_addition_module 允許ngx_http_addition_module模塊(mod_layout) 游戲服務器不必安裝,門戶網站可以安裝,有利於被搜索引擎收錄頁面信息。 --with-http_xslt_module 允許ngx_http_xslt_module模塊 這個模塊是一個過濾器,它可以通過XSLT模板轉換XML應答。0.7.8后面版本才可以使用。 --with-http_sub_module 允許ngx_http_sub_module模塊 這個模塊可以能夠在nginx的應答中搜索並替換文本。 --with-http_dav_module 允許ngx_http_dav_module模塊(mod_dav) 為文件和目錄指定權限,限制不同類型的用戶對於頁面有不同的操作權限 --with-http_flv_module 允許ngx_http_flv_module模塊(mod_flvx) 這個模塊支持對FLV(flash)文件的拖動播放。 --with-http_gzip_static_module 允許ngx_http_gzip_static_module模塊(mod_dflate)。 這個模塊在一個預壓縮文件傳送到開啟Gzip壓縮的客戶端之前檢查是否已經存在以“.gz”結尾的壓縮文件,這樣可以防止文件被重復壓縮。 --with-http_random_index_module 允許ngx_http_random_index_module模塊(mod_autoindex),從目錄中選擇一個隨機主頁 --with-http_stub_status_module 允許ngx_http_stub_status_module模塊(mod_status) 這個模塊可以取得一些nginx的運行狀態,如果是工業狀況,可以直接取消。 --without-http_charset_module 不使用ngx_http_charset_module模塊 這個模塊將在應答頭中為"Content-Type"字段添加字符編碼 --without-http_gzip_module 不使用ngx_http_gzip_module模塊,文件壓縮模式。 --without-http_ssi_module 不使用ngx_http_ssi_module模塊,此模塊處理服務器端包含文件(ssi)的處理. --without-http_userid_module 不使用ngx_http_userid_module模塊 The module ngx_http_userid_module gives out cookies for identification of clients --without-http_access_module 不使用ngx_http_access_module模塊 --without-http_auth_basic_module 不使用ngx_http_auth_basic_module模塊 --without-http_autoindex_module 不使用ngx_http_autoindex_module模塊 --without-http_geo_module 不使用ngx_http_geo_module模塊 這個模塊基於客戶端的IP地址創建一些ngx_http_geoip_module變量,並與MaxMindGeoIP文件進行匹配,該模塊僅用於0.7.63和0.8.6版本之后。但效果不太理想,對於城市的IP記錄並不是特別准確,不過對於網站的來源訪問區域的分析大致有一定參考性。 --without-http_map_module 不使用ngx_http_map_module模塊 這個模塊允許你分類或者同時映射多個值到多個不同值並儲存到一個變量中,可用於頁面跳轉其他域名使用。 --without-http_referer_module 不使用ngx_http_referer_module模塊 當一個請求頭的Referer字段中包含一些非正確的字段,這個模塊可以禁止這個請求訪問站點。可以禁止盜鏈的情況發生。 --without-http_rewrite_module 不使用ngx_http_rewrite_module模塊,跳轉模塊 --without-http_proxy_module 不使用ngx_http_proxy_module模塊,代理模塊 --without-http_fastcgi_module 不使用ngx_http_fastcgi_module模塊 --without-http_memcached_module 不使用ngx_http_memcached_module模塊 --without-http_limit_zone_module 不使用ngx_http_limit_zone_module模塊 此模塊可以限制並發連接,達到減少攻擊的效果 --without-http_empty_gif_module 不使用ngx_http_empty_gif_module模塊 這個模塊在內存中保存一個能夠很快傳遞的1×1透明GIF --without-http_browser_module 不使用ngx_http_browser_module模塊 識別客戶端瀏覽器版本來制定計划。可以實現更加來源瀏覽器的版本訪問不同頁面的效果。 --without-http_upstream_ip_hash_module,不使用ngx_http_upstream_ip_hash_module模塊 --with-http_perl_module 允許ngx_http_perl_module模塊,這個模塊允許nginx使用SSI調用perl或直接執行perl --with-perl_modules_path=PATH 設置perl模塊路徑 --with-perl=PATH 設置perl庫文件路徑 --http-log-path=PATH 設置access log文件路徑 --http-client-body-temp-path=PATH 設置客戶端請求臨時文件路徑 --http-proxy-temp-path=PATH 設置http proxy臨時文件路徑 --http-fastcgi-temp-path=PATH 設置http fastcgi臨時文件路徑 --without-http 不使用HTTP server功能,如果只是做代理服務器,可以不提供http服務 --with-mail 允許POP3/IMAP4/SMTP代理模塊 --with-mail_ssl_module 允許ngx_mail_ssl_module模塊 這個模塊使得POP3/IMAP/SMTP可以使用SSL/TLS.配置已經定義了HTTP SSL模塊,但是不支持客戶端證書檢測 --without-mail_pop3_module 不允許ngx_mail_pop3_module模塊 --without-mail_imap_module 不允許ngx_mail_imap_module模塊 --without-mail_smtp_module 不允許ngx_mail_smtp_module模塊 --with-google_perftools_module 允許ngx_google_perftools_module模塊(調試用) 這個模塊可以啟用google性能分析工具套件,模塊在版本0.6.29增加。 --with-cpp_test_module 允許ngx_cpp_test_module模塊 --add-module=PATH 允許使用外部模塊,以及路徑 --with-cc=PATH 設置C編譯器路徑 --with-cpp=PATH 設置C預處理路徑 --with-cc-opt=OPTIONS 設置C編譯器參數 --with-ld-opt=OPTIONS 設置連接文件參數 --with-cpu-opt=CPU 為指定CPU優化,可選參數有: pentium, pentiumpro, pentium3, pentium4, athlon, opteron, sparc32, sparc64, ppc64 --without-pcre 不使用pcre庫文件,pcre是包括 perl 兼容的正規表達式庫 --with-pcre=DIR 設定PCRE庫路徑 --with-pcre-opt=OPTIONS 設置PCRE運行參數 --with-md5=DIR 設定md5庫文件路徑 --with-md5-opt=OPTIONS 設置md5運行參數 --with-md5-asm 使用md5源文件編譯 --with-sha1=DIR 設定sha1庫文件路徑 sha1:安全哈希算法(Secure Hash Algorithm)主要適用於數字簽名標准(Digital Signature Standard DSS)里面定義的數字簽名算法(Digital Signature Algorithm DSA)。對於長度小於2^64位的消息,SHA1會產生一個160位的消息摘要。當接收到消息的時候,這個消息摘要可以用來驗證數據的完整性。在傳輸的過程中,數據很可能會發生變化,那么這時候就會產生不同的消息摘要。 --with-sha1-opt=OPTIONS 設置sha1運行參數 --with-sha1-asm 使用sha1源文件編譯 --with-zlib=DIR 設定zlib庫文件路徑 很多程序中的壓縮或者解壓縮函數都會用到這個庫 --with-zlib-opt=OPTIONS 設置zlib運行參數 --with-zlib-asm=CPU 使zlib對特定的CPU進行優化,可選參數: pentium, pentiumpro --with-openssl=DIR 設定OpenSSL庫文件路徑Openssl作為一個基於密碼學的安全開發包,OpenSSL提供的功能相當強大和全面,囊括了主要的密碼算法、常用的密鑰和證書封裝管理功能以及SSL協議,並提供了豐富的應用程序供測試或其它目的使用。 --with-openssl-opt=OPTIONS 設置OpenSSL運行參數 --with-debug 允許調試日志






注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com