一、必要軟件準備
1.安裝pcre
為了支持rewrite功能,我們需要安裝pcre
2.安裝openssl
需要ssl的支持,如果不需要ssl支持,請?zhí)^這一步
3.gzip 類庫安裝
4.安裝wget
下載nginx使用,如果已經安裝,跳過這一步
二、安裝nginx
1.下載
2.解壓
tar -zxvf nginx-1.7.0.tar.gz
3.編譯和安裝
執(zhí)行如下命令:
# cd nginx-1.7.0
# ./configure --prefix=/usr/local/nginx-1.7.0 \
--with-http_ssl_module --with-http_spdy_module \
--with-http_stub_status_module --with-pcre
–with-http_stub_status_module:支持nginx狀態(tài)查詢
–with-http_ssl_module:支持https
–with-http_spdy_module:支持google的spdy,想了解請百度spdy,這個必須有ssl的支持
–with-pcre:為了支持rewrite重寫功能,必須制定pcre
最后輸出如下內容,表示configure OK了。
checking for zlib library ... found
creating objs/Makefile
Configuration summary
+ using system PCRE library
+ using system OpenSSL library
+ md5: using OpenSSL library
+ sha1: using OpenSSL library
+ using system zlib library
nginx path prefix: "/usr/local/nginx-1.7.0"
nginx binary file: "/usr/local/nginx-1.7.0/sbin/nginx"
nginx configuration prefix: "/usr/local/nginx-1.7.0/conf"
nginx configuration file: "/usr/local/nginx-1.7.0/conf/nginx.conf"
nginx pid file: "/usr/local/nginx-1.7.0/logs/nginx.pid"
nginx error log file: "/usr/local/nginx-1.7.0/logs/error.log"
nginx http access log file: "/usr/local/nginx-1.7.0/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
# make //確定你的服務器有安裝make,如果沒有安裝請執(zhí)行yum install make
# make install
三、啟動、關閉、重置nginx
啟動:直接執(zhí)行以下命令,nginx就啟動了,不需要改任何配置文件,nginx配置多域名虛擬主機請參考后續(xù)文章.
試試訪問:直接使用curl命令來讀取web信息
[root@ns conf]
# curl -s http://localhost | grep nginx.com
nginx.com.
關閉:
重置:當你有修改配置文件的時候,只需要reload以下即可
整個nginx的安裝就到這里結束了。
四、nginx編譯參數詳解
–prefix= 指向安裝目錄
–sbin-path 指向(執(zhí)行)程序文件(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模塊支持(一種輪詢模式,不推薦在高載環(huán)境下使用)禁用:–without-select_module
–with-poll_module 啟用poll模塊支持(功能與select相同,與select特性相同,為一種輪詢模式,不推薦在高載環(huán)境下使用)
–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_image_filter_module 啟用ngx_http_image_filter_module支持(傳輸JPEG/GIF/PNG 圖片的一個過濾器)(默認為不啟用。gd庫要用到)
–with-http_geoip_module 啟用ngx_http_geoip_module支持(該模塊創(chuàng)建基于與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:創(chuàng)建集合,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自上次啟動以來的工作狀態(tài))
–without-http_charset_module 禁用ngx_http_charset_module支持(重新編碼web頁面,但只能是一個方向–服務器端到客戶端,并且只有一個字節(jié)的編碼可以被重新編碼)
–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支持(該模塊用來處理用來確定客戶端后續(xù)請求的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模塊未找到索引文件時發(fā)出請求。)
–without-http_geo_module 禁用ngx_http_geo_module支持(創(chuàng)建一些變量,其值依賴于客戶端的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還有更進一步的重寫規(guī)則,location部分的規(guī)則依然會被執(zhí)行。如果這個URI重寫是因為location部分的規(guī)則造成的,那么 location部分會再次被執(zhí)行作為新的URI。 這個循環(huán)會執(zhí)行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支持(該模塊用來醫(yī)用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支持(該模塊可以針對條件,進行會話的并發(fā)連接數控制)
–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支持(該模塊用來創(chuàng)建依賴于請求報頭的值。如果瀏覽器為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個版本,它是規(guī)定個人計算機如何連接到互聯網上的郵件服務器進行收發(fā)郵件的協議。是因特網電子郵件的第一個離線協議標 準,POP3協議允許用戶從服務器上把郵件存儲到本地主機上,同時根據客戶端的操作刪除或保存在郵件服務器上的郵件。POP3協議是TCP/IP協議族中的一員,主要用于 支持使用客戶端遠程管理在服務器上的電子郵件)
–without-mail_imap_module 禁用imap協議(一種郵件獲取協議。它的主要作用是郵件客戶端可以通過這種協議從郵件服務器上獲取郵件的信息,下載郵件等。IMAP協議運行在TCP/IP協議之上, 使用的端口是143。它與POP3協議的主要區(qū)別是用戶可以不用把所有的郵件全部下載,可以通過客戶端直接對服務器上的郵件進行操作。)
–without-mail_smtp_module 禁用smtp協議(SMTP即簡單郵件傳輸協議,它是一組用于由源地址到目的地址傳送郵件的規(guī)則,由它來控制信件的中轉方式。SMTP協議屬于TCP/IP協議族,它幫助每臺計算機在發(fā)送或中轉信件時找到下一個目的地。)
–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匯編源進行優(yōu)化,CPU類型為pentium, pentiumpro
–with-libatomic 為原子內存的更新操作的實現提供一個架構
–with-libatomic= 指向libatomic_ops安裝目錄
–with-openssl= 指向openssl安裝目錄
–with-openssl-opt 在編譯時為openssl設置附加參數
–with-debug 啟用debug日志