44來(lái)自博哥的Nginxyum安裝和編譯安裝

1.1 什么是Nginx

Nginx (“engine x”) 是一個(gè)開(kāi)源的、支持高性能、高并發(fā)的WWW服務(wù)和代理服務(wù)軟件。它是由俄羅斯人IgorSysoev開(kāi)發(fā)的,最初被應(yīng)用在俄羅斯的大型網(wǎng)站www.rambler.ru上。后來(lái)作者將源代碼以類BSD許可證的形式開(kāi)源出來(lái)供全球使用。

1.2 Nginx的主要功能

Nginx的主要功能有以下三點(diǎn):

  1. 網(wǎng)頁(yè)服務(wù):Nginx是一個(gè)支持高性能、高并發(fā)的Web服務(wù)軟件,它自身是靜態(tài)Web服務(wù),并且還支持動(dòng)態(tài)Web服務(wù)。
  2. 反向代理/負(fù)載均衡:Nginx可以作為Web服務(wù)、PHP等動(dòng)態(tài)服務(wù)及Memcached緩存的代理服務(wù)器。
  3. 前端業(yè)務(wù)數(shù)據(jù)緩存:Nginx通過(guò)自身的proxy_cache模塊實(shí)現(xiàn)數(shù)據(jù)緩存的功能。

1.3 Nginx的特點(diǎn)

Nginx服務(wù)器具有以下特色及優(yōu)點(diǎn):

  1. 支持高并發(fā):能支持幾萬(wàn)并發(fā)連接(特別是靜態(tài)小文件業(yè)務(wù)環(huán)境)。
  2. 資源消耗少:在3萬(wàn)并發(fā)連接下,開(kāi)啟10個(gè)Nginx線程消耗不到200MB內(nèi)存。
  3. 可以做HTTP反向代理及加速緩存,即負(fù)載均衡功能,內(nèi)置對(duì)RS節(jié)點(diǎn)服務(wù)器健康檢查功能,這相當(dāng)于專業(yè)的haproxy軟件或lvs的功能。
  4. 具備squid等專業(yè)緩存軟件等的緩存功能。
  5. 支持異步網(wǎng)絡(luò)I/O事件模型epoll。

1.4 Nginx主要應(yīng)用場(chǎ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é)合proxy_pass支持Java動(dòng)態(tài)程序(例如使用tomcat/resin服務(wù))。
Nginx結(jié)合uwsgi_pass支持Python。
3、反向代理/負(fù)載均衡:http負(fù)載均衡
4、做Web緩存服務(wù)器(把文件放入內(nèi)存里)

1.5 反向代理與負(fù)載均衡

  1. 正向代理:由內(nèi)向外。代替局域網(wǎng)內(nèi)PC,請(qǐng)求外部應(yīng)用服務(wù)。
  2. 反向代理:由外向內(nèi)。代替外部的用戶請(qǐng)求內(nèi)部的應(yīng)用服務(wù)器。
  3. 負(fù)載均衡:將請(qǐng)求轉(zhuǎn)發(fā)、效率高。

1.6 軟件安裝方法

Linux系統(tǒng)中的安裝軟件方法:

  1. rpm安裝
    簡(jiǎn)單、快速,但是依賴多,解決依賴?yán)щy繁瑣。
  2. yum安裝
    簡(jiǎn)單、快速、自動(dòng)解決依賴。但是不能選擇軟件版本或軟件存放路徑。
  3. 編譯安裝(源碼編譯)
    慢、復(fù)雜、需要GCC編譯器,但是可以自定義安裝(版本、軟件路徑)
  4. 將源碼制作成rpm,然后放到y(tǒng)um倉(cāng)庫(kù),實(shí)現(xiàn)yum自動(dòng)安裝。
    第一次慢、復(fù)雜,但是以后安裝快,可以自定義安裝(版本、軟件路徑)
  5. 二進(jìn)制安裝
    需要制作RPM和 YUM倉(cāng)庫(kù)搭建
    rpm包定制:http://blog.oldboyedu.com/autodeploy-rpm/
    yum倉(cāng)庫(kù)搭建:http://blog.oldboyedu.com/autodeploy-yum/

1.7 Nginx安裝

1.7.1 兩種安裝方法

1、yum安裝
使用epel源:版本低。
使用nginx官方源:版本高。
2、編譯安裝

1.7.2 配置官方源yum安裝

配置官方y(tǒng)um源:

[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

安裝并啟動(dòng)服務(wù):

[root@web01 ~]$ yum install nginx -y          <===安裝nginx
[root@web01 ~]$ rpm -qa nginx                 <===查看安裝包
nginx-1.16.0-1.el7.ngx.x86_64
[root@web01 ~]$ systemctl start nginx         <===啟動(dòng)服務(wù)
[root@web01 ~]$ systemctl enable nginx        <===服務(wù)開(kāi)機(jī)自啟動(dòng)
[root@web01 ~]$ systemctl status nginx        <===查看狀態(tài)
[root@web01 ~]$ netstat -lntup|grep nginx     <===查看端口
tcp        0      0 0.0.0.0:80      0.0.0.0:*   LISTEN   8509/nginx: master

1.7.3 編譯安裝

1、下載nginx壓縮包及依賴:

[root@web01 ~]$ mkdir -p /server/tools    <===創(chuàng)建安裝目錄
[root@web01 ~]$ cd /server/tools
[root@web01 /server/tools]$ wget http://nginx.org/download/nginx-1.16.0.tar.gz    <===下載壓縮包
[root@web01 /server/tools]$ yum install pcre pcre-devel openssl openssl-devel -y  <===安裝依賴

2、編譯安裝步驟

[root@web01 /server/tools]$ tar xf nginx-1.16.0.tar.gz                           <===解壓縮
[root@web01 /server/tools]$ cd nginx-1.16.0/                                     <===切換目錄
[root@web01 /server/tools/nginx-1.16.0]$ useradd -s /sbin/nologin www -M         <===創(chuàng)建不可登錄用戶且不創(chuàng)建家目錄
[root@web01 /server/tools/nginx-1.16.0]$ id www                                  <===查看用戶信息
[root@web01 /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@web01 /server/tools/nginx-1.16.0]$ make                                    <===編譯
[root@web01 /server/tools/nginx-1.16.0]$ make install                            <===安裝
[root@web01 /server/tools/nginx-1.16.0]$ ln -s /application/nginx-1.16.0/ /application/nginx    <===創(chuàng)建軟鏈接
[root@web01 /server/tools/nginx-1.16.0]$ /application/nginx/sbin/nginx           <===啟動(dòng)nginx服務(wù)
[root@web01 /server/tools/nginx-1.16.0]$ netstat -lntup|grep nginx               <===查看端口

注意:
1)每一步結(jié)尾直接echo $?驗(yàn)證是否正確。返回0代表步驟正確
2)驗(yàn)證最終的安裝是否正確。

[root@web02 /server/tools/nginx-1.16.0]$ wget 10.0.0.8
--2019-04-30 17:37:41--  http://10.0.0.8/
正在連接 10.0.0.8:80... 已連接。
已發(fā)出 HTTP 請(qǐng)求,正在等待回應(yīng)... 200 OK
長(zhǎng)度:319 [text/html]
正在保存至: “index.html.1”

100%[===================================================================>] 319         --.-K/s 用時(shí) 0s      

2019-04-30 17:37:41 (3.17 MB/s) - 已保存 “index.html.1” [319/319])

configure參數(shù)的作用

參數(shù) 說(shuō)明
--prefix=PATH 路徑
--user=USER 用戶
--group=GROUP
--with-pcre 偽靜態(tài)
--with-http_stub_status_module 狀態(tài)
--with-http_ssl_module 加密 443

目錄下各文件說(shuō)明:

[root@web02 /application/nginx]# tree
├── conf
│ ├── fastcgi.conf            #配合php接口的置參數(shù)
│ ├── 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     #和動(dòng)態(tài)服務(wù)的接口配置參數(shù)
│ ├── uwsgi_params
│ ├── uwsgi_params.default    #配合Python接口的配置參數(shù)
│ └── win-utf
├── fastcgi_temp
├── html                      #默認(rèn)站點(diǎn)目錄。  
│ ├── 50x.html
│ └── index.html          #默認(rèn)的首頁(yè),10.0.0.8不指定文件,默認(rèn)加載index.html首頁(yè)。
├── logs
│ ├── access.log              #訪問(wèn)日志
│ ├── error.log               #Nginx錯(cuò)誤日志。
│ └── nginx.pid               #進(jìn)程號(hào)對(duì)應(yīng)文件。
├── sbin
│ └── nginx                   #啟動(dòng)命令。

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容