Nginx
Nginx是目前最流行的靜態(tài)web服務(wù)軟件
1、nginx介紹
是一個(gè)開源的、支持高性能、高并發(fā)的www服務(wù)和代理服務(wù)軟件。
2、Nginx三大主要功能
1)網(wǎng)頁服務(wù):web服務(wù),自身是靜態(tài)web服務(wù)。
apche,lighttpd、IIS
還支持動(dòng)態(tài)web服務(wù)
PHP(fasttcgi_pass)
python(uwsgi_pass)
JAVA(proxy_pass)
memcache(mecache_pass)
2)負(fù)載均衡\反向代理
haproxy、lvs、F5、netscaler
之前只支持http,現(xiàn)在TCP/UDP
3)緩存服務(wù)器
squid、varnish
3、特點(diǎn):
2008年冒頭,當(dāng)時(shí)Apache是老大,Nginx如何超越對手的。
Apache 43% Nginx42%
特點(diǎn):金泰小文件高并發(fā),占用資源少。軟件本身小。
企業(yè)面試時(shí)需要解答如下Nginx HTTP服務(wù)器的特色及優(yōu)點(diǎn):
1)支持高并發(fā):能支持幾萬并發(fā)連接(特別是靜態(tài)小文件業(yè)務(wù)環(huán)境)。
2)資源消耗少:在3萬并發(fā)連接下,開啟10個(gè)Nginx線程消耗不到200MB內(nèi)存。
3)可以做HTTP反向代理及加速緩存,即負(fù)載均衡功能,內(nèi)置對Rs節(jié)點(diǎn)服務(wù)器健康檢查功能,這相當(dāng)于專業(yè)的haproxy軟件或1vs的功能具備squid等專業(yè)緩存軟件等的緩存功能。
4、Nginx作為web服務(wù)器的主要應(yīng)用場景;
1)靜態(tài)Web服務(wù)器:吏用Nginx運(yùn)行HTML、 JS,Css、小圖片等靜態(tài)數(shù)據(jù)(此功能類似lighttpd軟件)
2)配合運(yùn)行動(dòng)態(tài)web服務(wù)器:
Nginx結(jié)合FastCGI運(yùn)行PHP等動(dòng)態(tài)程序(例如使用fastcgi pass方式)
Nginx結(jié)合等支持Java動(dòng)態(tài)程序(tomcat/resin(常用proxy pass方式)。
Nginx結(jié)合uwsgi-pass支持Python。
3)反向代理/負(fù)載均衡
http負(fù)載均衡
4)做web緩存服務(wù)器(把文件放入內(nèi)存里)
5、反向代理與負(fù)載均衡
代理:海外代購 ,微商:代理:代替別人做事。
正向代理:由內(nèi)向外。 代替 效率低
代替局域網(wǎng)內(nèi)PC,請求外部應(yīng)用服務(wù)。
反向代理: 由外向內(nèi) 代替 效率低
代替外部的用戶請求內(nèi)部的應(yīng)用服務(wù)。
負(fù)載均衡:轉(zhuǎn)發(fā)、效率高
甩手掌柜。
6·為什么Nginx總體性能比Apache高?
Nginx使用最新的epoll (Linux2.6內(nèi)核)和kqueue (freebsd)異步網(wǎng)絡(luò)1/0模型,而Apache則使用的是傳統(tǒng)的select模型。目前Linux下能夠承受高并發(fā)訪問的Squid, Memcached軟件都采用的是epoll模型。
Apache則使用的是傳統(tǒng)的select模型,Nginx使用高并發(fā)的epol1模型
舉例:
select模型:朋友去宿舍找你。一個(gè)一個(gè)宿舍找,#效率低
epoll模型:朋友去宿舍找你,先問宿管大媽,看看在哪間宿舍,然后直奔宿舍。#效率高
7、軟件安裝
1、rpm安裝簡單快。依賴多,解決依賴?yán)щy繁瑣。
2、yum安裝*****簡單快, 自動(dòng)解決依賴。不能選擇軟件版本或軟件存放路徑。
3、編譯安裝(源碼編譯) *****慢復(fù)雜需要GCC編譯器,可以自定義安裝(版本、軟件路徑)
4、將源碼制作成rpm,然后放到y(tǒng)um倉庫,實(shí)現(xiàn)yum自動(dòng)安裝。一次性慢復(fù)雜,安裝快,可以自定義安裝(版本、軟件路徑)
5、二進(jìn)制安裝制作RPM YUM倉庫搭建https: //blog.oldboyedu.com/autodeploy-rpm/
8、Nginx安裝
兩種安裝方法:
yum安裝
epel源:版本低。
nginx官方源:版本高。
編譯安裝
pcre:URL重寫軟件,即實(shí)現(xiàn)偽靜態(tài)需要這個(gè)軟件
下載:
[root@web02 /server/tools]# wget http://nginx.org/download/nginx-1.16.0.tar.gz #沒有這個(gè)目錄需要?jiǎng)?chuàng)建
安裝依賴 :
yum install pcre pcre-devel -y
yum install openssl openssl-devel -y
解壓:
[root@web02 /server/tools]# tar xf nginx-1.16.0.tar.gz
創(chuàng)建用戶:
[root@web02 /server/tools/nginx-1.16.0]# useradd -s /sbin/nologin www -M
執(zhí)行:
在當(dāng)前目錄下執(zhí)行
./configure --user=www --group=www --prefix=/application/nginx-1.16.0/ --with-http_stub_status_module --with-http_ssl_module
###############注釋:每執(zhí)行一步需要 執(zhí)行以下echo $? 顯示0表示正確
編譯
執(zhí)行這條命令:make&&make install
做軟連接:
ln -s /application/nginx-1.16.0/ /application/nginx
執(zhí)行nginx:
/application/nginx/sbin/nginx
結(jié)束
nginx目錄介紹
[root@web02 /application/nginx]# tree
.
├── client_body_temp
├── conf
│ ├── fastcgi.conf
│ ├── fastcgi.conf.default
│ ├── fastcgi_params
│ ├── fastcgi_params.default
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types #媒體類型
│ ├── mime.types.default
│ ├── nginx.conf #主配置文件
│ ├── nginx.conf.default
│ ├── scgi_params
│ ├── scgi_params.default
│ ├── uwsgi_params
│ ├── uwsgi_params.default #動(dòng)態(tài)服務(wù)的接口配置參數(shù)
│ └── win-utf
├── fastcgi_temp
├── html #默認(rèn)站點(diǎn)目錄
│ ├── 50x.html
│ └── index.html #默認(rèn)的首頁,不指定,默認(rèn)加載index.html首頁。
├── logs
│ ├── access.log #訪問日志
│ ├── error.log #Nginx錯(cuò)誤日志
│ └── nginx.pid
├── proxy_temp
├── sbin
│ ├── nginx #啟動(dòng)命令
│ └── nginx.old
├── scgi_temp
└── uwsgi_temp