- 引入:Web服務軟件:
1沿猜、靜態(tài)軟件: Nginx (Tengine) 荤崇、Apache, Lighttpd
2分扎、動態(tài)軟件: php程序(Php引擎) 稀火、JAVA程序(tomcat/resin/jboss/weblogic) python程序(Python)
1、Nginx:
Nginx ("enginex")是一個開源的肌厨、支持高性能培慌、高并發(fā)的www服務和代理服務軟件。它是由俄羅斯人IgorSysoev開發(fā)的,最初被應用在俄羅斯的大型網(wǎng)站www.rambler.ru上柑爸。后來作者將源代碼以類BSD許可證的形式開源出來供全球使用吵护。
2、Nginx3大主要功能
1)網(wǎng)頁服務:自身是靜態(tài)服務(還支持動態(tài)Web服務)
apache,lighttpd馅而,IIS
動態(tài)Web服務:
PHP(fastcqi pass)
JAVA(proxy pass)
Python(uwsgi pass)
=================
memcache ......
2)負載均衡\反向代理
haproxy祥诽,lvs,F(xiàn)5瓮恭,netscaler
3)緩存服務器
squid雄坪,varnish
3、特點:
企業(yè)面試時需要解答如下Nginx HTTP服務器的特色及優(yōu)點:
1)支持高并發(fā):能支持幾萬并發(fā)連接(特別是靜態(tài)小文件業(yè)務環(huán)境) 屯蹦。
2)資源消耗少:在3萬并發(fā)連接下,開啟10個Nginx線程消耗不到200MB內存诸衔。
3)可以做HTTP反向代理及加速緩存,即負載均衡功能,內置對RS節(jié)點服務器健康檢查功能,這相當于專業(yè)的haproxy軟件或1vs的功能。
4颇玷、Nginx主要應用場景:
①靜態(tài)服務器:
使用Nginx運行HTML笨农、 Js、CSS帖渠、小圖片等靜態(tài)數(shù)據(jù)(此功能類似lighttpd軟件)谒亦。
②配合運行動態(tài)服務器:
Nginx結合FastCGI運行PHp等動態(tài)程序(例如使用fastcgi pass方式)。
Nginx結合proxy pass支持Java動態(tài)程序(tomcat/resin服務)空郊。
Nginx結合uwsgi pass支持Python.
③反向代理/負載均衡:
http負載均衡
④做Web緩存服務器(把文件放入內存里)
5份招、反向代理與負載代理
- 引入代理的概念:通俗的講就是海外代購,微商狞甚;代替別人做事锁摔。
- 正向代理:由內向外。代替效率低
代替局域網(wǎng)內PC,請求外部應用服務哼审。 - 反向代理:由外向內代替效率低
代替外部的用戶請求內部的應用服務器谐腰。 - 負載均衡:轉發(fā)。甩手掌柜涩盾。效率高
6十气、為什么Nginx總體性能比Apache高?
Nginx使用最新的epoll (Linux2.6內核)和kqueue (freebsd)異步網(wǎng)絡I/O模型,而Apache則使用的是傳統(tǒng)的select模型春霍。目前Linux下能夠承受高并發(fā)訪問的Squid, Memcached軟件都采用的是epoll模型砸西。
select模型:例朋友去宿舍找你不知道你在哪個房間,就會一個一個找... 效率很低址儒。
epoll模型:例朋友去宿舍找你不知道你在哪個房間芹枷,就會問宿管,查看在哪宿舍莲趣。效率高
7鸳慈、回顧軟件安裝
1、rpm安裝簡單快妖爷。依賴多,解決依賴困難繁瑣蝶涩。
2理朋、yum安裝
簡單快, 自動解決依賴絮识。不能選擇軟件版本或軟件存放路徑绿聘。
3、編譯安裝(源碼編譯)
復雜需要Gcc編譯器,可以自定義安裝(版本次舌、軟件路徑)
4熄攘、將源碼制作成rpm,然后放到y(tǒng)um倉庫,實現(xiàn)yum自動安裝。一次性慢復雜,安裝快,可以自定義安裝(版本彼念、軟件路徑)
5挪圾、二進制安裝
制作RPM YUM倉庫搭建
https: //blog.oldboyedu.com/autodeploy-rpm/
8、Nginx安裝
兩種安裝方法:
①yum安裝
epel源:安裝的nginx版本比較低
nginx官方源:版本最高
修改
[root@web01 /etc/yum.repos.d]# vim nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
安裝查看版本
[root@web01 ~]# yum install nginx
成功
[root@web01 ~]# rpm -qa nginx
nginx-1.16.0-1.el7.ngx.x86_64
開啟服務
[root@web01 ~]# systemctl start nginx
[root@web01 ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
[root@web01 ~]# systemctl status nginx
查看是否開啟
在瀏覽器上輸入web服務器IP地址驗證
②編譯安裝
Ⅰ創(chuàng)建自己要放置nginx的目錄并下載壓縮包
[root@web02 ~]# mkdir -p /server/tools
[root@web02 ~]# cd /server/tools
[root@web02 /server/tools]# git clone git://github.com/arut/nginx-rtmp-module.git"
[root@web02 /server/tools]#wget http://nginx.org/download/nginx-1.16.0.tar.gz
Ⅱ安裝Nginx所需pcre庫
pcre:URL重寫軟件逐沙,即實現(xiàn)偽靜態(tài)需要這個軟件
[root@web02 /server/tools]# yum install pcre-devel pcre -y
[root@web02 /server/tools]#yum install openssl openssl-devel -y
Ⅲ解壓切換目錄
[root@web02 /server/tools]# tar xf nginx-1.16.0.tar.gz
[root@web02 /server/tools]# cd nginx-1.16.0/
Ⅳ創(chuàng)建用戶
這里創(chuàng)建用戶的目的是為了指定啟動服務的用戶
[root@web02 /server/tools/nginx-1.16.0]# useradd -s /sbin/nologin www -M
Ⅴ編譯安裝
[root@web02 /server/tools/nginx-1.16.0]# ./configure --user=www --group=www --prefix=/application/nginx-1.16.0/ --with-http_stub_status_module --with-http_ssl_module --with-pcre
[root@web02 /server/tools/nginx-1.16.0]# make
[root@web02 /server/tools/nginx-1.16.0]# make install
Ⅵ制作軟鏈接
[root@web02 /server/tools/nginx-1.16.0]# ln -s /application/nginx-1.16.0/ /application/nginx
Ⅶ啟動
[root@web02 /server/tools/nginx-1.16.0]# /application/nginx/sbin/nginx
Ⅷ驗證即可
編譯安裝查看配置
[root@web02 /application/nginx]# tree
.
├── client_body_temp
├── conf
│ ├── fastcgi.conf #和動態(tài)服務的接口配置參數(shù)哲思,配合php
│ ├── 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 #和動態(tài)服務的接口配置參數(shù)
│ ├── uwsgi_params
│ ├── uwsgi_params.default #和動態(tài)服務的接口配置參數(shù),配合Python
│ └── win-utf
├── fastcgi_temp
├── html #默認站點目錄
│ ├── 50x.html
│ └── index.html #默認的首頁吩案,默認加載index.html
├── logs
│ ├── access.log
│ ├── error.log #
│ └── nginx.pid #進程號對應文件
├── proxy_temp
├── sbin
│ ├── nginx #啟動命令
│ └── nginx.old
├── scgi_temp
└── uwsgi_temp
yum安裝查看安裝配置目錄
[root@web01 / ]# rpm -ql nginx
在此目錄里進行網(wǎng)頁的設置
[root@web02 /application/nginx/html]# ls
50x.html index.html
[root@web02 /application/nginx/html]# vim index.html
初步的web服務器的nginx安裝已經完成