Nginx簡介:(摘自百度百科)
Nginx ("engine x") 是一個高性能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器。Nginx是由Igor Sysoev為俄羅斯通路量第二的Rambler.ru站點開發的,第一個公開版本0.1.0釋出于2004年10月4日。其将源代碼以類BSD許可證的形式釋出,因它的穩定性、豐富的功能集、示例配置檔案和低系統資源的消耗而聞名。2011年6月1日,nginx 1.0.4釋出。
Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,并在一個BSD-like 協定下發行。由俄羅斯的程式設計師Igor Sysoev所開發,供俄國大型的入口網站及搜尋引擎Rambler(俄文:Рамблер)使用。其特點是占有記憶體少,并發能力強,事實上nginx的并發能力确實在同類型的網頁伺服器中表現較好,中國大陸使用nginx網站使用者有:百度、新浪、網易、騰訊等。
百度百科位址:
http://baike.baidu.com/link?url=GAOiVzg97I5fIIFJs5eK5fL44ndIw2URgnt3CWA4YmKTvYbVlD53cB4rh3M9OcqcAP2RtrJqo11wqHUmwPycCK
系統版本:CentOS 6.5
Nginx版本:nginx-1.8.1.tar.gz
一、下載下傳nginx
# wget http://nginx.org/download/nginx-1.8.1.tar.gz
二、安裝:
# cd /usr/local/src/
安裝make:
# yum -y install gcc automake autoconf libtool make
安裝g++:
# yum -y install gcc gcc-c++
安裝pcre庫:(重寫rewrite需要)
# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz
# tar xvzf pcre-8.37.tar.gz
# cd pcre-8.37
# ./configure
# make
# make install
安裝zlib庫:(開啟gzip壓縮需要)
# wget http://zlib.net/zlib-1.2.8.tar.gz
# tar xvzf zlib-1.2.8.tar.gz
# cd zlib-1.2.8
# ./configure
# make
# make install
安裝openssl:(啟用ngx_http_ssl_module支援)
# wget ftp://ftp.openssl.org/source/old/1.0.1/openssl-1.0.1p.tar.gz
# tar xvzf openssl-1.0.1p.tar.gz
安裝nginx:
# wget http://nginx.org/download/nginx-1.8.1.tar.gz
# tar xvzf nginx-1.8.1.tar.gz
# cd nginx-1.8.1
# ./configure --prefix=/opt/nginx --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.37 --with-zlib=/usr/local/src/zlib-1.2.8 --with-openssl=/usr/local/src/openssl-1.0.1p
# make
# make install
安裝完成nginx之後,目錄結構為:
# tree nginx/
nginx/
├── conf
│ ├── fastcgi.conf
│ ├── fastcgi.conf.default
│ ├── fastcgi_params
│ ├── fastcgi_params.default
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types
│ ├── mime.types.default
│ ├── nginx.conf
│ ├── nginx.conf.default
│ ├── scgi_params
│ ├── scgi_params.default
│ ├── uwsgi_params
│ ├── uwsgi_params.default
│ └── win-utf
├── html
│ ├── 50x.html
│ └── index.html
├── logs
└── sbin
└── nginx
啟動nginx:
# /opt/nginx/sbin/nginx
檢視是否開啟端口:
# netstat -ntlp |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 48623/nginx
浏覽器通路:
http://IP/

nginx的configure指令支援以下參數:
--prefix= 指向安裝目錄
--sbin-path= 指向(執行)程式檔案(nginx)
--conf-path= 指向配置檔案(nginx.conf)
--error-log-path= 指向錯誤日志目錄
--pid-path= 指向pid檔案(nginx.pid)
--lock-path= 指向lock檔案(nginx.lock)(安裝檔案鎖定,防止安裝檔案被别人利用,或自己誤操作。)
--user= 指定程式運作時的非特權使用者
--group= 指定程式運作時的非特權使用者組
--builddir= 指向編譯目錄
--with-rtsig_module 啟用rtsig子產品支援(實時信号)
--with-select_module 啟用select子產品支援(一種輪詢模式,不推薦在高載環境下使用)禁用:--without-select_module
--with-poll_module 啟用poll子產品支援(功能與select相同,與select特性相同,為一種輪詢模式,不推薦在高載環境下使用)
--with-file-aio 啟用file aio支援(一種APL檔案傳輸格式)
--with-ipv6 啟用ipv6支援
--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_xslt_module 啟用ngx_http_xslt_module支援(過濾轉換XML請求)
--with-http_p_w_picpath_filter_module 啟用ngx_http_p_w_picpath_filter_module支援(傳輸JPEG/GIF/PNG 圖檔的一個過濾器)(預設為不啟用。gd庫要用到)
--with-http_geoip_module 啟用ngx_http_geoip_module支援(該子產品建立基于與MaxMind GeoIP二進制檔案相配的用戶端IP位址的ngx_http_geoip_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_random_index_module 啟用ngx_http_random_index_module支援(從目錄中随機挑選一個目錄索引)
--with-http_secure_link_module 啟用ngx_http_secure_link_module支援(計算和檢查要求所需的安全連結網址)
--with-http_degradation_module 啟用ngx_http_degradation_module支援(允許在記憶體不足的情況下傳回204或444碼)
--with-http_stub_status_module 啟用ngx_http_stub_status_module支援(擷取nginx自上次啟動以來的工作狀态)
--without-http_charset_module 禁用ngx_http_charset_module支援(重新編碼web頁面,但隻能是一個方向–伺服器端到用戶端,并且隻有一個位元組的編碼可以被重新編碼)
--without-http_gzip_module 禁用ngx_http_gzip_module支援(該子產品同--with-http_gzip_static_module功能一樣)
--without-http_ssi_module 禁用ngx_http_ssi_module支援(該子產品提供了一個在輸入端處理處理伺服器包含檔案(SSI)的過濾器,目前支援SSI指令的清單是不完整的)
--without-http_userid_module 禁用ngx_http_userid_module支援(該子產品用來處理用來确定用戶端後續請求的cookies)
--without-http_access_module 禁用ngx_http_access_module支援(該子產品提供了一個簡單的基于主機的通路控制。允許/拒絕基于ip位址)
--without-http_auth_basic_module禁用ngx_http_auth_basic_module(該子產品是可以使用使用者名和密碼基于http基本認證方法來保護你的站點或其部分内容)
--without-http_autoindex_module 禁用disable ngx_http_autoindex_module支援(該子產品用于自動生成目錄清單,隻在ngx_http_index_module子產品未找到索引檔案時送出請求。)
--without-http_geo_module 禁用ngx_http_geo_module支援(建立一些變量,其值依賴于用戶端的IP位址)
--without-http_map_module 禁用ngx_http_map_module支援(使用任意的鍵/值對設定配置變量)
--without-http_split_clients_module 禁用ngx_http_split_clients_module支援(該子產品用來基于某些條件劃分使用者。條件如:ip位址、報頭、cookies等等)
--without-http_referer_module 禁用disable ngx_http_referer_module支援(該子產品用來過濾請求,拒絕報頭中Referer值不正确的請求)
--without-http_rewrite_module 禁用ngx_http_rewrite_module支援(該子產品允許使用正規表達式改變URI,并且根據變量來轉向以及選擇配置。如果在server級别設定該選項,那麼他們将在 location之前生效。如果在location還有更進一步的重寫規則,location部分的規則依然會被執行。如果這個URI重寫是因為location部分的規則造成的,那麼 location部分會再次被執行作為新的URI。 這個循環會執行10次,然後Nginx會傳回一個500錯誤。)
--without-http_proxy_module 禁用ngx_http_proxy_module支援(有關代理伺服器)
--without-http_fastcgi_module 禁用ngx_http_fastcgi_module支援(該子產品允許Nginx 與FastCGI 程序互動,并通過傳遞參數來控制FastCGI 程序工作。 )FastCGI一個常駐型的公共網關接口。
--without-http_uwsgi_module 禁用ngx_http_uwsgi_module支援(該子產品用來醫用uwsgi協定,uWSGI伺服器相關)
--without-http_scgi_module 禁用ngx_http_scgi_module支援(該子產品用來啟用SCGI協定支援,SCGI協定是CGI協定的替代。它是一種應用程式與HTTP服務接口标準。它有些像FastCGI但他的設計 更容易實作。)
--without-http_memcached_module 禁用ngx_http_memcached_module支援(該子產品用來提供簡單的緩存,以提高系統效率)
--without-http_limit_zone_module 禁用ngx_http_limit_zone_module支援(該子產品可以針對條件,進行會話的并發連接配接數控制)
--without-http_limit_req_module 禁用ngx_http_limit_req_module支援(該子產品允許你對于一個位址進行請求數量的限制用一個給定的session或一個特定的事件)
--without-http_empty_gif_module 禁用ngx_http_empty_gif_module支援(該子產品在記憶體中常駐了一個1*1的透明GIF圖像,可以被非常快速的調用)
--without-http_browser_module 禁用ngx_http_browser_module支援(該子產品用來建立依賴于請求報頭的值。如果浏覽器為modern ,則$modern_browser等于modern_browser_value指令配置設定的值;如 果浏覽器為old,則$ancient_browser等于 ancient_browser_value指令配置設定的值;如果浏覽器為 MSIE中的任意版本,則 $msie等于1)
--without-http_upstream_ip_hash_module 禁用ngx_http_upstream_ip_hash_module支援(該子產品用于簡單的負載均衡)
--with-http_perl_module 啟用ngx_http_perl_module支援(該子產品使nginx可以直接使用perl或通過ssi調用perl)
--with-perl_modules_path= 設定perl子產品路徑
--with-perl= 設定perl庫檔案路徑
--http-log-path= 設定access log路徑
--http-client-body-temp-path= 設定http用戶端請求臨時檔案路徑
--http-proxy-temp-path= 設定http代理臨時檔案路徑
--http-fastcgi-temp-path= 設定http fastcgi臨時檔案路徑
--http-uwsgi-temp-path= 設定http uwsgi臨時檔案路徑
--http-scgi-temp-path= 設定http scgi臨時檔案路徑
--without-http 禁用http server功能
–without-http-cache 禁用http cache功能
–with-mail 啟用POP3/IMAP4/SMTP代理子產品支援
--with-mail_ssl_module 啟用ngx_mail_ssl_module支援
--without-mail_pop3_module 禁用pop3協定(POP3即郵局協定的第3個版本,它是規定個人計算機如何連接配接到網際網路上的郵件伺服器進行收發郵件的協定。是網際網路電子郵件的第一個離線協定标 準,POP3協定允許使用者從伺服器上把郵件存儲到本地主機上,同時根據用戶端的操作删除或儲存在郵件伺服器上的郵件。POP3協定是TCP/IP協定族中的一員,主要用于 支援使用用戶端遠端管理在伺服器上的電子郵件)
--without-mail_imap_module 禁用imap協定(一種郵件擷取協定。它的主要作用是郵件用戶端可以通過這種協定從郵件伺服器上擷取郵件的資訊,下載下傳郵件等。IMAP協定運作在TCP/IP協定之上, 使用的端口是143。它與POP3協定的主要差別是使用者可以不用把所有的郵件全部下載下傳,可以通過用戶端直接對伺服器上的郵件進行操作。)
--without-mail_smtp_module 禁用smtp協定(SMTP即簡單郵件傳輸協定,它是一組用于由源位址到目的位址傳送郵件的規則,由它來控制信件的中轉方式。SMTP協定屬于TCP/IP協定族,它幫助每台計算機在發送或中轉信件時找到下一個目的地。)
--with-google_perftools_module 啟用ngx_google_perftools_module支援(調試用,剖析程式性能瓶頸)
--with-cpp_test_module 啟用ngx_cpp_test_module支援
--add-module= 啟用外部子產品支援
--with-cc= 指向C編譯器路徑
--with-cpp= 指向C預處理路徑
--with-cc-opt= 設定C編譯器參數(PCRE庫,需要指定--with-cc-opt=”-I /usr/local/include”,如果使用select()函數則需要同時增加檔案描述符數量,可以通過–with-cc- opt=”-D FD_SETSIZE=2048”指定。)
--with-ld-opt= 設定連接配接檔案參數。(PCRE庫,需要指定--with-ld-opt=”-L /usr/local/lib”。)
--with-cpu-opt= 指定編譯的CPU,可用的值為: pentium, pentiumpro, pentium3, pentium4, athlon, opteron, amd64, sparc32, sparc64, ppc64
--without-pcre 禁用pcre庫
--with-pcre 啟用pcre庫
--with-pcre= 指向pcre庫檔案目錄
--with-pcre-opt= 在編譯時為pcre庫設定附加參數
--with-md5= 指向md5庫檔案目錄(消息摘要算法第五版,用以提供消息的完整性保護)
--with-md5-opt= 在編譯時為md5庫設定附加參數
--with-md5-asm 使用md5彙編源
--with-sha1= 指向sha1庫目錄(數字簽名算法,主要用于數字簽名)
--with-sha1-opt= 在編譯時為sha1庫設定附加參數
--with-sha1-asm 使用sha1彙編源
--with-zlib= 指向zlib庫目錄
--with-zlib-opt= 在編譯時為zlib設定附加參數
--with-zlib-asm= 為指定的CPU使用zlib彙編源進行優化,CPU類型為pentium, pentiumpro
--with-libatomic 為原子記憶體的更新操作的實作提供一個架構
--with-libatomic= 指向libatomic_ops安裝目錄
--with-openssl= 指向openssl安裝目錄
--with-openssl-opt 在編譯時為openssl設定附加參數
--with-debug 啟用debug日志
更多内容,請關注部落客個人部落格網站:http://www.whysha.com