一、Nginx概述
1.Nginx簡介
辦理基于歷程模子發(fā)生的C10k問題,請求時縱然無狀態(tài)毗連如web處事都無法到達(dá)并發(fā)響應(yīng)量級一萬近況。2006年俄羅斯編寫。全稱為engine X,縮減歸并稱為nginx。 官方站點:http://nginx.org/。 2013年發(fā)出企業(yè)版Nginx Plus
二次刊行版:tengine, OpenResty… …
2.Nginx的特性
1) 模塊化設(shè)計、較好擴(kuò)展性;早期不支持模塊的動態(tài)裝卸載
2) 高靠得住性:基于master/worker模式
master:認(rèn)真啟動處事,闡明設(shè)置文件,父子啟動子歷程和worker歷程
worker:真正響應(yīng)用戶請求歷程
3) 支持熱陳設(shè)(滑膩遷移):不斷機更新設(shè)置文件、改換日志、更新處事器措施版本;
4) 內(nèi)存耗損低:10000個keep-alive毗連模式下的非勾當(dāng)毗連僅耗損2.5M內(nèi)存;
5) 支持event-driven事件驅(qū)動模子, aio一步驅(qū)念頭制, mmap內(nèi)存映射;
3.Nginx根基成果
2) http協(xié)議的反向署理處事器;
3) pop3, smpt,imap4等郵件協(xié)議的反向署理;
4) 能緩存打開的文件(元數(shù)據(jù):文件的描寫符等等信息)
5) 支持FastCGI(php-fpm), uWSGI(Python WebFramwork)等協(xié)議機制,實現(xiàn)署理后端應(yīng)用措施交互
6) 高度模塊化(非DSO機制)
模塊范例:
core module |
焦點公用模塊 |
Standard HTTP modules |
尺度(焦點)HTTP模塊;自動編譯進(jìn)措施不止一個 |
Optional HTTP modules |
可選HTTP模塊 |
Mail modules |
郵件模塊 |
3rd party modules |
第三方模塊,在編譯時需手動指明加載方法加載 |
7) 支持過濾器,譬喻zip,SSI
8) 支持SSL加密機制;
9) web處事相關(guān)的成果:虛擬主機(server)、keepalive、會見日志(支持基于日志緩沖提高其機能)、urlrewirte、路徑別名、基于IP及用戶的會見節(jié)制、支持速率限制及并發(fā)數(shù)限制;
……
4.Nginx的根基架構(gòu):master/worker
master/worker模子:一個master歷程可生成一個或多個worker歷程;每個worker基于時間驅(qū)念頭制可以并行響應(yīng)多個請求
master:加載設(shè)置文件、打點worker歷程、滑膩進(jìn)級,...
worker:http處事,http署理,fastcgi署理,...
事件驅(qū)動:epoll(Linux),kqueue(FreeBSD), /dev/poll(Solaris)
動靜通知:select,poll, rt signals
支持sendfile, sendfile64
支持AIO,mmap
二、Nginx編譯安裝設(shè)置
1.編譯安裝nginx
(1)編譯情況籌備
[[email protected]~]# yum install -y make
[[email protected]~]# yum install -y gcc
[[email protected]~]# yum -y groupinstall "開拓東西""處事器平臺開拓"
[[email protected]~]# yum install -y pcre-devel openssl-develzlib-devel
[[email protected]~]# useradd -r nginx
(2)解壓安裝
[[email protected]~]# tar xf nginx-1.8.0.tar.gz
[[email protected]]# ./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-debug
留意:check時,在Linux上epoll機制要存在
[[email protected]]#make &&make install
(3)啟動處事,檢測端口是否啟用
[[email protected]~]# /usr/local/nginx/sbin/nginx
[[email protected]~]# ss-tnl
2.Nginx設(shè)置文件
(1)設(shè)置指令有范例
1) 全局指令:安排于mainblock中,即文檔根
main設(shè)置段種別:正常運行必備的設(shè)置;優(yōu)化機能相關(guān)的設(shè)置;用于調(diào)試、定位問題的設(shè)置;