初識Nginx——nginx的編譯、安裝及特色(一)

1、Nginx簡介nginx

    nginx是一個輕量級的服務器軟件,目前世界排名第三,第一佔據大部分的市場份額的是apache,第二的是微軟公司的IIS站的比重大約是23%。nginx自開發出來04年公佈出來市場份額逐年上升,所擁有的功能是前二者都沒有的,並且還能與之互補,因此頗有必要認真研究一番。
web


    Nginx是一款web服務器反向代理服務器及電子郵件代理服務器。是在BSD-like協議下發行的。
apache

    Nginx最突出的特色就是佔有內存少,併發能力強。Nginx採用的是事件驅動結構,使用異步套接字來接受客戶的請求,是一種非阻塞結構,不使用單獨的線程處理,使用masker來控制worker來進行金城的控制,一個master對應一個或者多個worker,並且每一個worker相應多個請求,很大必定程度上的減小了cpu和內存的消耗!緩存

    

    Nginx 特性:
bash

        一、模塊化設計,較好的擴展性。不管是Nginx本身帶的模塊,仍是第三方開發的模塊,Nginx都能很好的支持。
服務器

        二、高可靠性,Nginx把線程分爲主線程master和副線程worker,啓動Nginx時候就會先啓動master,而後master會生成一個或者多個worker線程去執行命令,並且因爲這個模式的出現,Nginx能夠實現版本平滑升級,而不用從新啓動web服務。Nginx裏面有多個master,新出現的master就會升級,正在運行的master不會升級,而會等到它所運行的進程結束,它會自動退出,等到下次啓用的時候啓用的master就是更新好的新版本master,master下面的worker升級原理也是這樣的。
架構

        三、較低的內存消耗,相比而言,Nginx有一萬個keep-alive鏈接在Nginx 小號的內存大約爲2.5M。歸功於Nginx的架構太優秀了。
併發

        四、支持熱部署、能夠實現不停機而更新配置文件、更新日誌文件、更新服務器程序版本。負載均衡

    

Nginx基本功能:異步

    提供靜態資源的web服務器,能緩存打開的文件,描述符

    支持http、smtp pop3協議的反向代理服務器

    支持緩存、負載均衡

    支持fastCGI(fpm)

    支持高度模塊化機制,而非DOS機制,過濾zip、ssi及圖像大小調整。

    支持SSL


Nginx的擴展功能

    支持基於名稱和IP的虛擬主機

    支持keep-alive

    支持平滑升級

    支持url rewrite(地址重寫)

    支持使用日誌緩衝區提升日誌存儲功能 ,定製訪問日誌


    支持路徑別名

    支持速率限制

    支持基於IP及用戶的訪問控制

    支持併發數限制


Nginx 1.6.2版本編譯安裝

    從官方網站或者社區中下載源碼包並解壓到/usr/src目錄下  tar xf nginx-1.6.2.tar.gz -C /usr/src

    避免編譯過程當中發生錯誤 ,用yum安裝Development Tools和Server Platform Development包組

    添加Nginx系統組:groupadd -r nginx

    添加nginx系統用戶:useradd -g nginx -r nginx

    cd至源碼解壓的目錄下,而後編譯安裝

./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --user=nginx --group=nginx --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_mp4_module --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


    若是出現錯誤大部分緣由就是有些--devel的開發包沒有安裝,能夠根據提示把開發包安裝進去。

    而後 make && make install


    此時的Nginx是開機沒有啓動的

    那麼下面介紹讓Nginx開機啓動

    新建文件/etc/rc.d/init.d/nginx,內容以下:

    

    

#
# chkconfig:   - 85 15 
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
nx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15 
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
   # make required directories
   user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   options=`$nginx -V 2>&1 | grep 'configure arguments:'`
   for opt in $options; do


    將服務腳本的權限設置爲可執行 chomd +x /etc/rc.d/init.d/nginx

    將服務加入服務列表中,並設置爲開機自啓動:chkconfig --add nginx && chkconfig nginx on

    測試啓動nginx:service nginx start

    

    wKiom1Sf6SPDaSp2AAFCbCgw2uo056.jpg

相關文章
相關標籤/搜索