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