Nginx是目前最流行的靜態(tài)Web服務(wù)軟件
1锈麸、Nginx的介紹
Nginx (“engine x”) 是一個開源的、支持高性能缴阎、高并發(fā)的WWW服務(wù)和代理服務(wù)軟件蝙斜。
它是由俄羅斯人IgorSysoev開發(fā)的经磅,最初被應(yīng)用在俄羅斯的大型網(wǎng)站www.rambler.ru上泌绣。
后來作者將源代碼以類BSD許可證的形式開源出來供全球使用
2、Nginx3大主要功能
1)網(wǎng)頁服務(wù):Web服務(wù) 自身是靜態(tài)Web服務(wù)预厌,
apache阿迈,lighttpd,IIs
還支持動態(tài)web服務(wù)
PHP(fastcgi_pass)
JAVA(proxy_pass)
Python(uwsgi_pass)
2)負(fù)載均衡轧叽、反向代理
haproxy,lvs ,F5,netscaler
早期只支持http 苗沧,現(xiàn)在tcp/udp
3)緩存服務(wù)器
squid,varnish
3刊棕、Nginx特點:
2008年初露鋒芒
最大特點:靜態(tài)小文件高并發(fā),占用資源少待逞。軟件本身小甥角。
3.1企業(yè)面試時需要解答Nginx HTTP服務(wù)器的特色及優(yōu)點:
1)支持高并發(fā):能支持幾萬并發(fā)連接(特別是靜態(tài)小文件業(yè)務(wù)環(huán)境)。
2)資源消耗少:在3萬并發(fā)連接下识樱,開啟10個Nginx線程消耗不到200MB內(nèi)存嗤无。
3)可以做HTTP反向代理及加速緩存,及負(fù)載均衡功能怜庸,內(nèi)置對RS節(jié)點服務(wù)器健康檢查功能当犯, 這相當(dāng)于專業(yè)的haproxy軟件或LVS的功能,具備squid等專業(yè)緩存軟件等的緩存功能割疾。
4嚎卫、Nginx作為web服務(wù)器的主要應(yīng)用場景:
1)靜態(tài)web服務(wù)器
使用Nginx運行HTML、JS宏榕、CSS拓诸、小圖片等靜態(tài)數(shù)據(jù)(此功能類似lighttpd軟件)。
2)配合運行動態(tài)web服務(wù)器:
Nginx結(jié)合Fast CGI運行PHP等動態(tài)程序(例如使用fastcgi——pass方式)
Nginx結(jié)合proxy_pass支持JAVA動態(tài)程序(tomcat/resin方式)
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ò)I/O模型枢劝,而Apache則使用的是傳統(tǒng)的select模型。目前Linux下能夠承受高并發(fā)訪問的Squid卜壕、Memcached軟件都采用的是epoll模型您旁。
Apache則使用的是傳統(tǒng)的select模型,Nginx使用高并發(fā)的epoll模型
比如:
select模型:伙伴去宿舍找你,一個一個找轴捎。鹤盒。效率低。
epoll模型: 伙伴去宿舍找你侦副,先問宿管大媽侦锯,看看在哪間宿舍,然后直奔具體宿舍秦驯。效率高尺碰。
select模型:小孩撒尿:如果尿尿拉出來,帶著尿尿。
epoll模型: 小孩撒尿:事先告訴所有小孩亲桥,如果要尿尿洛心,你就站出來。
阿姨就看有沒有人站出來就可以了题篷。
7词身、軟件安裝
Linux系統(tǒng)如何安裝軟件?
1番枚、rpm安裝
簡單 快偿枕。依賴多,解決依賴?yán)щy繁瑣户辫。
2渐夸、yum安裝*****
簡單快,自動解決依賴渔欢。不能選擇軟件版本或存放路徑
3墓塌、編譯安裝(源碼編譯)****
慢 復(fù)雜 需要GCC編譯器,可以自定義安裝(版本 安裝路徑)
4奥额、將源碼制作成rpm苫幢,然后放到y(tǒng)um倉庫,實現(xiàn)yum自動安裝垫挨。
一次性慢 復(fù)雜韩肝,安裝快,可以自定義安裝(版本九榔、軟件路勁)
5哀峻、二進(jìn)制安裝
制作RPM YUM倉庫搭建
搭建參考地址(https://blog.oldboyedu.com/autodeploy-rpm)
8、Nginx的安裝
兩種安裝方法: yum安裝
編譯安裝:練習(xí)編譯過程
8.1 配置官方源yum安裝:
vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
[root@web01 ~]# rpm -qa nginx ###查詢
[root@web01 ~]# systemctl start nginx ###啟動
[root@web01 ~]# systemctl enable nginx
[root@web01 ~]# systemctl status nginx
[root@web01 ~]# netstat -lntup|grep nginx ##顯示連接狀況
Nginx官方下載
安裝Nginx所需的庫
Pcre全稱(perl Compatible Regular Expression)哲泊,中文“perl兼容正則表達(dá)式剩蟀,”官方站點http://www.pcre.org/,安裝pcre是為了使Nginx支持具有URL重寫功能的Rewrite模塊切威。
8育特、2編譯安裝步驟(和8、1二選1)
pcre:URL重寫軟件先朦,實現(xiàn)偽靜態(tài)需要這個軟件
下載步驟:
mkdir -p /server/tools/
cd /server/tools/
wget [http://nginx.org/download/nginx-1.16.0.tar.gz](http://nginx.org/download/nginx-1.16.0.tar.gz) 瀏覽器搜nginx.org
安裝依賴缰冤。
yum install pcre pcre-devel -y
用echo$? 檢查下載每一步錯了重新下載≡骸0正確
yum install openssl openssl-devel -y ∶藿#https加密用的
編譯安裝依賴
tar xf nginx-1.16.0.tar.gz
cd nginx-1.16.0/
useradd -s /sbin/nologin www -M
id www
./configure --user=www --group=www --prefix=/application/nginx-1.16.0/ --with-http_stub_status_module --with-http_ssl_module --with-pcre
make
make install
ln -s /application/nginx-1.16.0/ /application/nginx
/application/nginx/sbin/nginx ##創(chuàng)建軟連接方便使用
netstat -lntup|grep nginx
在瀏覽器打開成功 說明正確
.注意:
1)每一步結(jié)尾直接echo $?驗證是否正確截酷。返回0代表步驟正確
2)驗證最終的安裝是否正確涮拗。
wget 10.0.0.8
curl 10.0.0.8