第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

Centos 下安裝 Nginx

今天我們的目標(biāo)就是在 Centos 上搭建好 Nginx 服務(wù),方便后續(xù)開展各種測(cè)試和學(xué)習(xí)。這也是學(xué)習(xí)其他互聯(lián)網(wǎng)組件的第一步。接下來(lái),我將分步驟描述源碼編譯的過(guò)程,并做部分說(shuō)明。本次實(shí)驗(yàn)環(huán)境是 CentOS 7.6 系統(tǒng)。

1. 官網(wǎng)下載最新源代碼,并解壓

目前官方最新版本(截止到 2019 年 12 月 12 日)為 1.17.6,我們直接去官網(wǎng)找到下載地址。不推薦直接使用 yum 安裝,因?yàn)榇嬖谌缦聝蓚€(gè)問(wèn)題:

  • 版本太舊,以 CentOS 為例,直接 yum 安裝的版本是 1.12.2 版本,已經(jīng)嚴(yán)重脫離了時(shí)代;
  • 無(wú)法自定義安裝模塊,安裝目錄等等,不方便后續(xù)的實(shí)驗(yàn)。
# 下載nginx安裝包
$ wget http://nginx.org/download/nginx-1.17.6.tar.gz  
# 解壓安裝包
$ tar -xzf nginx-1.17.6.tar.gz

2. 依賴庫(kù)提前安裝

Nginx 是完全使用 C 語(yǔ)言開發(fā)的,所以必須要有 C 編譯環(huán)境,往往 CentOS 7.6 的環(huán)境會(huì)預(yù)裝 gcc 編譯器,所以不用額外安裝,如果沒有使用 yum 直接安裝即可。另外,我們使用 Nginx 的壓縮功能、正則表達(dá)式功能等,需要安裝一些額外的依賴庫(kù),這是必須要做的,不然在編譯階段就會(huì)報(bào)錯(cuò)。如下 3 個(gè)是比較 Nginx 中比較常用模塊所依賴的庫(kù),請(qǐng)?jiān)趫?zhí)行 Nginx 源碼編譯時(shí)提前安裝好。

$ sudo yum install -y zlib zlib-devel
$ sudo yum install -y pcre pcre-devel
$ sudo yum install -y openssl openssl-devel
  • 編譯并安裝
$ cd nginx-1.17.6
$ ./configure                # 編譯,檢查依賴是否正確
$ make && sudo make install  # 安裝

上述編譯和安裝命令就如同在 360 軟件中心,點(diǎn)擊一鍵安裝那樣,直接使用默認(rèn)的配置(通常會(huì)將相關(guān)文件安裝到 C 盤目錄)。

但是這樣往往不是我們需要的。特別是在 Nginx 中,可以指定安裝某些或者不安裝某些模塊,默認(rèn)安裝的模塊只適合簡(jiǎn)單的場(chǎng)景,往往在稍微復(fù)雜的情況下,就需要額外添加其他模塊,或者第三方以及自定義的模塊。這高可擴(kuò)展性正是 Nginx 的一大亮點(diǎn)。想要查看 configure 的可選參數(shù),使用 --help 選項(xiàng)即可:

$ ./configure --help

在所有可選參數(shù)中,最常用的有兩個(gè):

  • –prefix=PATH:配置 Nginx 安裝部署的根目錄。類似于在 Windows 下安裝軟件,我們指定安裝目錄;
  • –with-xxx_module:–without-xxx_module 其中 xxx 表示 Nginx 一個(gè)模塊的名稱,例如:
    • with-http_ssl_module -> 支持 SSL/TLS, 即 HTTPS
    • with-http_v2_module -> 支持 HTTP/2
    • without-http_fastcgi_module -> 不使用 fastcgi

為了后續(xù)測(cè)試功能完善,這里我們編譯時(shí)候,盡可能多的引入一些模塊:

$ ./configure  --prefix=/root/nginx          \
--with-http_ssl_module                       \
--with-http_stub_status_module               \
--with-http_gzip_static_module               \
--with-stream                                \
--with-http_realip_module                    \
--with-http_flv_module                       \
--with-http_random_index_module              \
--with-mail                                  \
--with-pcre                                  \
$ make && sudo make install

這里 “\” 在 Linux 系統(tǒng)環(huán)境下表示兩行之間沒有換行,只是為了方便展示命令。一般而言,Nginx 的編譯是比較順利的,偶爾報(bào)錯(cuò)是大部分因?yàn)樾枰黾拥哪K依賴的一些庫(kù)沒有事先安裝好。

對(duì)此,我們可以根據(jù)報(bào)錯(cuò)信息進(jìn)行修正問(wèn)題,保證編譯順利進(jìn)行。在上一步驟成功后,可以看到 Nginx 我們生成的 Nginx 編譯后的根目錄了。簡(jiǎn)單說(shuō)明根目錄下的內(nèi)容:
圖片描述

2.1 conf 目錄

這里放的是 Nginx 的相關(guān)配置文件,最重要的莫過(guò)于 nginx.conf 了,這個(gè)是默認(rèn)的配置文件。

2.2 html 目錄

這里有 2 個(gè)簡(jiǎn)單的 Nginx 頁(yè)面,分別為 50x.html 和 index.html,index.html 是 Nginx.conf
中默認(rèn)訪問(wèn)的頁(yè)面,也就是我們后續(xù)啟動(dòng) Nginx 時(shí),默認(rèn)訪問(wèn) 80 端口的頁(yè)面。

2.3 logs 目錄

暫時(shí)為空,啟動(dòng) Nginx,使用默認(rèn)的 Nginx.conf 配置文件,會(huì)在當(dāng)前目錄下生成 3 個(gè)文件,分別為:

  • access.log (記錄所有請(qǐng)求)
  • error.log (記錄所有錯(cuò)誤信息)
  • nginx.pid (Nginx 啟動(dòng)的主進(jìn)程 id)

2.4 sbin 目錄

最最重要的文件了,C 編譯的工作,最后就是為了得到這樣一個(gè)二進(jìn)制文件。Nginx 的啟動(dòng)、重新加載、停止等都是靠該命令完成。我們一般會(huì)將該目錄放到系統(tǒng)的 PATH 變量中,這樣是為了方便直接使用 Nginx 命令,系統(tǒng)能找到該二進(jìn)制文件。不然的話,我們使用該命令就必須輸入全路徑,類似下面這樣:

# 指定全路徑
$ /root/nginx/sbin/nginx   
# 將/root/Nginx/sbin/添加到了系統(tǒng)的PATH變量中,就可以直接使用
$ nginx  
# 或者進(jìn)入sbin目錄
$ cd /root/nginx/sbin
$ ./nginx 

3. 操作 Nginx

在 Nginx 命令行的使用中,有幾個(gè)非常重要的參數(shù),也是在操作 Nginx 時(shí)經(jīng)常用到的:

常用參數(shù) 作用
-t 測(cè)試 Nginx.conf 文件的語(yǔ)法是否正常
-c 指定 nginx.conf 文件
-s 最重要的操作,不帶 - s 是啟動(dòng),-s reload 是熱加載 -s stop 是停止,-s reopen 是重新打開日志

實(shí)例:

# 進(jìn)入sbin目錄
$ cd /root/nginx/sbin        
# 啟動(dòng)Nginx
$ ./nginx 
# 檢查nginx.conf
$ ./nginx -tc /root/nginx/conf/nginx.conf  
# 重新加載nginx
$ ./nginx -s reload 
# 停止nginx
$ ./nginx -s stop 

啟動(dòng) Nginx 后,首先使用 ps -ef | grep nginx 可以查看 Nginx 進(jìn)程是否已經(jīng)啟動(dòng),基于默認(rèn)的配置,我們將看到 2 個(gè) Nginx 的啟動(dòng)進(jìn)程:master 進(jìn)程和 worker 進(jìn)程。

這是我們?cè)谇懊嬷v到的 Nginx 的 Master-Worker 機(jī)制,后面會(huì)進(jìn)行詳細(xì)講解。另外,我們可以用命令 netstat -anltp | grep 80,看到 CentOS 上已經(jīng)在監(jiān)聽 80 端口,而這個(gè)監(jiān)聽服務(wù)正是 Nginx。最后可以用瀏覽器或者 curl 命令直接在 CentOS 機(jī)器上檢查 Nginx 服務(wù):

$ curl http://localhost

當(dāng)出現(xiàn) “Welcome to Nginx!" 這樣的歡迎語(yǔ)句,表明我們的 Nginx 已經(jīng)正常運(yùn)行了。

4. 安裝操作視頻演示

5. 小結(jié)

本節(jié)文章中,我們介紹了 Nginx 在 CentOS 7.6 上的搭建過(guò)程。因?yàn)?CentOS 系統(tǒng)在企業(yè)的生產(chǎn)環(huán)境中用的最多,所以本章內(nèi)容非常重要。除了介紹 Nginx 命令行的部分操作外,我們還介紹了編譯 Nginx 生成的根目錄。如果是相同的操作系統(tǒng),我們甚至可以直接用編譯好的根目錄放上去直接使用,省去編譯環(huán)節(jié)。