Centos7上Nginx的編譯安裝

Nginx作爲新誕生的web服務器,可以實現比Apache更好的併發性,自從誕生以來市場佔有率穩步提升

Nginx的特性:

基礎特性:

模塊化設計,較好的擴展性
支持熱部署:不停機更新配置文件,升級版本,更換日誌文件
低內存消耗:10000個keep-alive鏈接模式下的非活動鏈接,僅需2.5M內存
event-driven,aio,mmap,sendfile

和web服務相關的功能:

虛擬主機(server)
支持 keep-alive 和管道鏈接(利用一個鏈接作屢次請求)
訪問日誌(支持基於日誌緩衝提升其性能)
url rewirte
路徑別名
基於IP及用戶的訪問控制
支持速率限制及併發數限制
從新配置和在線升級而無須中斷客戶的工做進程

Nginx的web請求處理機制:

一、多進程方式:
服務器每接收到一個客戶端請求就有服務器的主進程生成一個子進程響應客戶端,直到用戶關閉鏈接,這樣的優點是處理
速度快,子進程之間相互獨立,可是若是訪問過大會致使服務器資源耗盡而沒法提供請求。 
二、多線程方式:
與多進程方式相似,可是每收到一個客戶端請求會有服務進程派生出一個線程來個客戶方進行交互,一個線程的開銷遠遠小於一個進程,
所以多線程方式在很大程度減輕了web服務器對系統資源的要求,可是多線程也有本身的缺點,即當多個線程位一個進程內工做的時候,
能夠相互訪問一樣的內存地址空間,因此他們相互影響,一旦主進程掛掉則全部子線程都不能工做了,IIS服務器使用
了多線程的方式,須要間隔一段時間就重啓一次才能穩定。

Centos7上Nginx的編譯安裝

主進程(master process)的功能:

1,讀取Nginx 配置文件並驗證其有效性和正確性
2,創建、綁定和關閉socket鏈接
3,按照配置生成、管理和結束工做進程
4,接受外界指令,好比重啓、升級及退出服務器等指令
5,不中斷服務,實現平滑升級,重啓服務並應用新的配置
6,開啓日誌文件,獲取文件描述符
7,不中斷服務,實現平滑升級,升級失敗進行回滾處理
8,編譯和處理perl腳本

工做進程(woker process)的功能:

1,接受處理客戶的請求
2,將請求以此送入各個功能模塊進行處理
3,IO調用,獲取響應數據
4,與後端服務器通訊,接收後端服務器的處理結果
5,緩存數據,訪問緩存索引,查詢和調用緩存數據
6,發送請求結果,響應客戶的請求
7,接收主程序指令,好比重啓、升級和退出等

編譯安裝

1,下載Nginx源碼安裝包

wget http://nginx.org/download/nginx-1.14.2.tar.gz

2,解壓安裝包

tar xf nginx-1.14.2.tar.gz -C /usr/local

3,添加預啓動的執行環境

yum install pcre pcre-devel openssl-devel gcc gcc-c++ perl-ExtUtils-Embed

4,添加編譯安裝選項,並檢查編譯環境

./configure 
--prefix=/apps/nginx 
--user=nginx 
--group=nginx 
--with-http_ssl_module 
--with-http_v2_module 
--with-http_realip_module 
--with-http_stub_status_module 
--with-http_gzip_static_module 
--with-pcre --with-stream 
--with-stream_ssl_module 
--with-stream_realip_module 
--with-http_perl_module

5,編譯安裝

make && make install nginx

6,增長環境變量

vim /etc/profile.d/nginx.sh
PATH=/apps/nginx/sbin/:$PATH

因爲Nginx是高度模塊化的web服務器,有不少的第三方對此進行了二次開發,如淘寶的Tengine等,若是想添加第三方模塊,須要在編譯時進行添加。如增長echo模塊,此模塊能夠打印出Nginx的內置變量,在後期進行排錯時能夠使用

1,下載第三方模塊

yum -y install git 
git clone https://github.com/openresty/echo-nginx-module.git

2,將第三方模塊加入編譯選項

./configure \
--prefix=/apps/nginx \
--user=nginx --group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module \
--with-http_perl_module \
--add-module=/usr/local/src/echo-nginx-module #增長第三方模塊的路徑

3,編譯安裝

make && make install
相關文章
相關標籤/搜索