nginx安裝

Nginx是目前最流行的靜態(tài)Web服務軟件

1.nginx介紹

Nginx (“engine x”) 是一個開源的、支持高性能、高并發(fā)的WWW服務和代理服務軟件。

它是由俄羅斯人IgorSysoev開發(fā)的,最初被應用在俄羅斯的大型網站www.rambler.ru上。

后來作者將源代碼以類BSD許可證的形式開源出來供全球使用。

3 月 11 日,F(xiàn)5 與 NGINX 宣布了一項最終協(xié)議,根據該協(xié)議,F(xiàn)5 將收購 NGINX 的所有已發(fā)行股票,總價值約為 6.7 億美元。

F5 是應用交付網絡(ADN)領域的全球領先廠商,其解決方案有助于整合不同的技術,以便更好地控制基礎架構,提高應用交付和數據管理能力,并使用戶能夠通過企業(yè)桌面系統(tǒng)和智能設備無縫、安全并更快速地接入應用。

而 NGINX 最知名產品 Nginx 是互聯(lián)網上最受歡迎的 Web 服務器之一,NGINX 提供一整套用于開發(fā)和交付現(xiàn)代應用的技術,同時它也是應用交付領域的開源領導者。

收購聲明指出,此次戰(zhàn)略收購和有機投資,將確保長期收入和每股盈利增長;F5 和 NGINX 將在所有環(huán)境中實現(xiàn)多云應用服務,提供開發(fā)人員所需的易用性和靈活性,同時還提供網絡運營團隊所需的規(guī)模、安全性和可靠性等能力。

收購完成后,Nginx 管理層將加入 F5,現(xiàn)有的辦事處也將繼續(xù)保持開放。為了收購 Nginx,F(xiàn)5 Networks 籌集了 1.03 億美元的資金,投資者中包括高盛、澳洲電信風投、以及新企業(yè)協(xié)會。

2.Nginx3大主要功能

1)網頁服務:自身是靜態(tài)Web服務,

apache,lighttpd,IIS

還支持動態(tài)Web服務

PHP(fastcgi_pass)

JAVA(proxy_pass)

Python(uwsgi_pass)

memcache(memcache_pass)

2)負載均衡\反向代理

haproxy,lvs,F5,netscaler

只支持http,現(xiàn)在tcp/udp。

3)緩存服務器

squid,varnish

3.特點:

最大特點:靜態(tài)小文件高并發(fā),占用資源少。軟件本身小。

企業(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軟件或lvs的功能。

具備squid等專業(yè)緩存軟件等的緩存功能。

4.Nginx主要應用場景:

1)靜態(tài)Web服務器:

? ? 使用Nginx運行HTML、JS、CSS、小圖片等靜態(tài)數據(此功能類似lighttpd軟件)。

2)配合運行動態(tài)Web服務器:

? ? Nginx結合FastCGI運行PHP等動態(tài)程序(例如使用fastcgi_pass方式)。

?Nginx結合proxy_pass支持Java動態(tài)程序(tomcat/resin服務)。

?Nginx結合uwsgi_pass支持Python。

? 3)反向代理/負載均衡

? ? http負載均衡

? 4)做Web緩存服務器(把文件放入內存里)。

5.反向代理與負載均衡

代理:海外代購,微商:代理:代替別人做事。

正向代理:由內向外。 代替 效率低

代替局域網內PC,請求外部應用服務。

反向代理:由外向內 代替 效率低

代替外部的用戶請求內部的應用服務器。

負載均衡:轉發(fā)、效率高

甩手掌柜。

6.為什么Nginx總體性能比Apache高?

Nginx使用最新的epoll(Linux2.6內核)和kqueue(freebsd)異步網絡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安裝

簡單 快。依賴多,解決依賴困難繁瑣。

2、yum安裝 *****

簡單快,自動解決依賴。不能選擇軟件版本或軟件存放路徑。

3、編譯安裝(源碼編譯)*****

慢 復雜 需要GCC編譯器,可以自定義安裝(版本、軟件路徑)

4、將源碼制作成rpm,然后放到y(tǒng)um倉庫,實現(xiàn)yum自動安裝。

一次性慢 復雜,安裝快,可以自定義安裝(版本、軟件路徑)

5、二進制安裝

8.Nginx安裝

兩種安裝方法:

yum安裝:

epel源:版本低。

nginx官方源:版本高。

編譯安裝:1、編譯講的多。2、練習編譯過程

8.1 配置官方源yum安裝

[root@web ~]# 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

nginx-1.16.0-1.el7.ngx.x86_64

[root@web01 ~]# systemctl start nginx

[root@web01 ~]# systemctl enable nginx

[root@web01 ~]# systemctl status nginx

[root@web01 ~]# netstat -lntup|grep nginx

tcp? ? ? ? 0? ? ? 0 0.0.0.0:80? ? ? 0.0.0.0:*? LISTEN? 8509/nginx: master

8.2 編譯安裝(和8.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

#安裝依賴。

yum install pcre pcre-devel -y

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

netstat -lntup|grep nginx

注意:

1)每一步結尾直接echo $?驗證是否正確。返回0代表步驟正確

2)驗證最終的安裝是否正確。

wget 10.0.0.8

curl 10.0.0.8

#configure參數的作用

--prefix=PATH? 路徑

--user=USER? ? 用戶

--group=GROUP? 組

--with-pcre? ? 偽靜態(tài)

--with-http_stub_status_module 狀態(tài)

--with-http_ssl_module? ? ? 加密 443

編譯安裝配置:

[root@web02 /application/nginx]# tree

.

├── conf

│?? ├── fastcgi.conf? ? ? ? #和動態(tài)服務的接口配置參數,配合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)服務的接口配置參數

│?? ├── uwsgi_params

│?? ├── uwsgi_params.default? #和動態(tài)服務的接口配置參數,配合Python

│?? └── win-utf

├── fastcgi_temp

├── html? ? ? ? ? ? #默認站點目錄。?

│?? ├── 50x.html

│?? └── index.html? #默認的首頁,10.0.0.8不指定文件,默認加載index.html首頁。

├── logs

│?? ├── access.log? #訪問日志

│?? ├── error.log? #Nginx錯誤日志。

│?? └── nginx.pid? #進程號對應文件。

├── sbin

│?? └── nginx? ? ? #啟動命令。

yum安裝配置路徑:

[root@web01 ~]# rpm -ql nginx

/etc/logrotate.d/nginx

/etc/nginx? ? ? ? ?

/etc/nginx/conf.d

/etc/nginx/conf.d/default.conf

/etc/nginx/fastcgi_params

/etc/nginx/koi-utf

/etc/nginx/koi-win

/etc/nginx/mime.types

/etc/nginx/modules

/etc/nginx/nginx.conf

/etc/nginx/scgi_params

/etc/nginx/uwsgi_params

/etc/nginx/win-utf

/usr/sbin/nginx

/usr/sbin/nginx-debug

/usr/share/nginx/html

/usr/share/nginx/html/50x.html

/usr/share/nginx/html/index.html

/var/cache/nginx

/var/log/nginx

編譯為主:

[root@web02 /application/nginx/html]# vim index.html

<html>

<head>

<title>老男孩58期</title>

<meta charset="UTF-8">

</head>

<body bgcolor=green>

<br>

<div align=center>

<table border=1>

<tr>

? ? ? ? <td>ID</td>

? ? ? ? <td>NAME</td>

</tr>

<tr>

? ? ? ? <td>001</td>

? ? ? ? <td>項博</td>

</tr>

<tr>

? ? ? ? <td>002</td>

? ? ? ? <td>項伯</td>

</tr>

</table>

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容