- 引入: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ā)的,最初被應用在俄羅斯的大型網站www.rambler.ru上。后來作者將源代碼以類BSD許可證的形式開源出來供全球使用。
2、Nginx3大主要功能
1)網頁服務:自身是靜態(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ù)據(此功能類似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、反向代理與負載代理
- 引入代理的概念:通俗的講就是海外代購,微商;代替別人做事。
- 正向代理:由內向外。代替效率低
代替局域網內PC,請求外部應用服務。 - 反向代理:由外向內代替效率低
代替外部的用戶請求內部的應用服務器。 - 負載均衡:轉發(fā)。甩手掌柜。效率高
6、為什么Nginx總體性能比Apache高?
Nginx使用最新的epoll (Linux2.6內核)和kqueue (freebsd)異步網絡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
在此目錄里進行網頁的設置
[root@web02 /application/nginx/html]# ls
50x.html index.html
[root@web02 /application/nginx/html]# vim index.html
初步的web服務器的nginx安裝已經完成