Nginx學(xué)習(xí)1 - Nginx安裝(Centos)

1.Nginx概述

Nginx (engine x) 是一個(gè)高性能的HTTP和反向代理web服務(wù)器,同時(shí)也提供了IMAP/POP3/SMTP服務(wù)。

Nginx是由伊戈?duì)枴べ愃饕驗(yàn)槎砹_斯訪問(wèn)量第二的Rambler.ru站點(diǎn)開(kāi)發(fā)的,第一個(gè)公開(kāi)版本0.1.0發(fā)布于2004年10月4日。

其將源代碼以類(lèi)BSD許可證的形式發(fā)布,因它的穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名。2011年6月1日,nginx 1.0.4發(fā)布。

Nginx是一款輕量級(jí)的Web服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,在BSD-like 協(xié)議下發(fā)行。

其特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上nginx的并發(fā)能力在同類(lèi)型的網(wǎng)頁(yè)服務(wù)器中表現(xiàn)較好,中國(guó)大陸使用nginx網(wǎng)站用戶(hù)有:百度、京東、新浪、網(wǎng)易、騰訊、淘寶等。

2.Nginx安裝

2.1下載Nginx

Nginx的官網(wǎng)下載地址是:http://nginx.org/en/download.html??梢渣c(diǎn)擊進(jìn)入,看到如圖所示頁(yè)面:

其中紅圈圈住的代表當(dāng)前最新的穩(wěn)定正式版本,我們也下載此版本。因?yàn)槭窃赾entos上面安裝,我們下載Linux版本:

下載完后,上傳到服務(wù)器上面,比如我們上傳的路徑為 /packages。

2.2 環(huán)境準(zhǔn)備

安裝前先要確定Linux的內(nèi)核版本要在2.6以上,只有2.6之后才支持epool ,在此之前使用select或pool多路復(fù)用的IO模型,無(wú)法解決高并發(fā)壓力的問(wèn)題。通過(guò)命令uname -a 即可查看:

另外Nginx需要GCC編譯器,用來(lái)編譯C語(yǔ)言環(huán)境,Nginx不會(huì)提供二進(jìn)制可執(zhí)行程序,只能下載源碼進(jìn)行編譯;

另外還需要PCRE庫(kù),是專(zhuān)門(mén)用來(lái)做正則表達(dá)式的,Nginx里面很多地方都用到了正則表達(dá)式,因此需要進(jìn)行安裝;

另外還需要zlib庫(kù),zlib庫(kù)用于對(duì)HTTP包的內(nèi)容做gzip格式的壓縮,如果我們?cè)趎ginx.conf里配置了gzip on,并指定對(duì)于某些類(lèi)型(content-type)的HTTP響應(yīng)使用gzip來(lái)進(jìn)行壓縮以減少網(wǎng)絡(luò)傳輸量;

另外還需要OpenSSL開(kāi)發(fā)庫(kù),如果我們的服務(wù)器不只是要支持HTTP,還需要在更安全的SSL協(xié)議上傳輸HTTP,那么就需要擁有OpenSSL了。另外,如果我們想使用MD5、SHA1等散列函數(shù),那么也需要安裝它;

上面幾個(gè)庫(kù)都是Nginx 基礎(chǔ)功能所必需的,為簡(jiǎn)單起見(jiàn)我們可以通過(guò)yum 命令統(tǒng)一安裝:

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre pcre-devel

2.3解壓安裝

安裝完畢后,解壓nginx,在對(duì)應(yīng)的目錄/packages中,有我們下載的包:

執(zhí)行解壓命令:

tar -zxvf nginx-1.16.0.tar.gz

可以看到解壓到了目錄下面:

進(jìn)入nginx文件夾,執(zhí)行命令:

./configure

然后執(zhí)行命令:

make

然后執(zhí)行命令:

make install

執(zhí)行完成之后nginx 運(yùn)行文件 就會(huì)被安裝在/usr/local/nginx下。

進(jìn)入安裝目錄:

cd  /usr/local/nginx

可以看到目錄下有四個(gè)文件夾:

  • conf是配置目錄
  • html是靜態(tài)資源目錄
  • logs是日志
  • sbin是一些執(zhí)行命令

3.常用命令

3.1啟動(dòng)Nginx

下面介紹幾種啟動(dòng)方式:

  • ./sbin/nginx
    默認(rèn)方式啟動(dòng)
  • ./sbing/nginx -c /tmp/nginx.conf
    指定配置文件啟動(dòng)
  • ./sbin/nginx -p /usr/local/nginx/
    指定nginx程序目錄啟動(dòng)

我們啟動(dòng)nginx,訪問(wèn)頁(yè)面,查看是否啟動(dòng)成功:

可以看到啟動(dòng)成功!

注意,nginx默認(rèn)使用的端口是80,如果端口已經(jīng)被占據(jù),那么需要修改默認(rèn)端口!默認(rèn)的配置在安裝文件夾下的conf文件夾下的ngixn.conf文件中,目錄為 /usr/local/nginx/conf ,修改端口:

image

啟動(dòng)可以看到端口改為8080:

3.2停止Nginx

介紹幾種停止方式:

  • ./sbin/nginx -s stop
    快速停止(直接暴力停止)
  • ./sbin/nginx -s quit
    優(yōu)雅停止(不接收新請(qǐng)求,處理完現(xiàn)有請(qǐng)求后停止)

3.3.其他命令

  • ./sbin/nginx -s reload
    熱裝載配置文件 ,不用停止可以刷新配置(一定要熟練,這是用的最多的命令)
  • ./sbin/nginx -s reopen
    重新打開(kāi)日志文件(下面單說(shuō))
  • ./sbin/nginx -t
    檢測(cè)當(dāng)前使用的是哪個(gè)配置文件,配置是否正確(可以在配置文件加點(diǎn)亂碼測(cè)試一下)(這個(gè)命令也經(jīng)常使用)

4.日志重寫(xiě)

啟動(dòng)完后,我們可以看到nginx有兩個(gè)進(jìn)程:一個(gè)master,一個(gè)worker

master進(jìn)程主要用來(lái)做熱裝載更新或者日志之類(lèi)的。
worker進(jìn)程才是真正執(zhí)行客戶(hù)端連接的進(jìn)程,為了提高性能,worker進(jìn)程是可以設(shè)置成多個(gè)的,后面文章再說(shuō)。

上面有個(gè)命令 ./sbin/nginx -s reopen 是重新打開(kāi)日志文件,什么意思呢?
下面做個(gè)演示,首先查看我們?nèi)罩灸夸浵旅娴娜罩疚募笮。?/p>

然后打開(kāi)頁(yè)面,連續(xù)刷新幾次,再查看大小:

可以看到access.log文件變大了,那么我們把現(xiàn)在的日志文件備份一下,然后新建一個(gè)access.log文件:

cd /usr/local/nginx/logs/
mv access.log access.log.bak

然后新建一個(gè)文件命名為access.log:

現(xiàn)在再次刷新頁(yè)面,然后查看哪個(gè)日志文件變大了:

發(fā)現(xiàn)不是新的日志文件變大了,而是老的備份文件,說(shuō)明日志還是寫(xiě)到老文件里面去了,這是什么原因呢?

nginx把日志寫(xiě)入日志文件的時(shí)候,并不是根據(jù)文件路徑去找文件,而是根據(jù)日志文件的句柄,而句柄中記錄了使用哪個(gè)日志文件,不會(huì)因?yàn)槲募拿指淖兌淖儭?/p>

這個(gè)時(shí)候要寫(xiě)使用新建的日志文件,必須使用 reopen 命令從新打開(kāi)文件,相當(dāng)于從新切換句柄中的日志文件引用,現(xiàn)在執(zhí)行命令:

./sbin/nginx -s reopen

然后再刷新頁(yè)面,可以看到日志寫(xiě)入到新文件中:

用上面這種方式可以進(jìn)行日志切割備份。

文章轉(zhuǎn)載自:http://www.itdecent.cn/p/99aac00aa3b7

?著作權(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)容