Nginx系列:Nginx源碼安裝
閱讀文本大概需要3分鐘。
? ? ? ?Nginx是使用C語(yǔ)言開發(fā)的,建議部署在Linux操作系統(tǒng)上,當(dāng)然也可以安裝在Windows操作系統(tǒng)安裝Windows版本的Nginx,本文演示在CentOS操作系統(tǒng)上安裝源碼安裝Nginx。
0x01:安裝依賴庫(kù)
以下命令均需root權(quán)限執(zhí)行
gcc 安裝
源碼安裝 Nginx需要對(duì)在官網(wǎng)下載的Nginx源碼進(jìn)行編譯,編譯依賴 gcc 環(huán)境,如果沒有 gcc 環(huán)境,則需要先安裝
yum?install?gcc?gcc-c++
PCRE pcre-devel 安裝
PCRE(Perl Compatible Regular Expressions) 是一個(gè)Perl庫(kù),包括 perl 兼容的正則表達(dá)式庫(kù)。nginx 的 http 模塊使用 pcre 來解析正則表達(dá)式,所以需要在 linux 上安裝 pcre 庫(kù),pcre-devel 是使用 pcre 開發(fā)的一個(gè)二次開發(fā)庫(kù)。nginx也需要此庫(kù)。
yum?install?-y?pcre?pcre-devel
zlib 安裝
zlib 庫(kù)提供了很多種壓縮和解壓縮的方式, Nginx使用 zlib 對(duì) http 包的內(nèi)容進(jìn)行 gzip ,所以需要在 CentOS上安裝 zlib 庫(kù)。
yum?install?-y?zlib?zlib-devel
OpenSSL 安裝
OpenSSL 是一個(gè)強(qiáng)大的安全套接字層密碼庫(kù),囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及 SSL 協(xié)議,并提供豐富的應(yīng)用程序供測(cè)試或其它目的使用。Nginx不僅支持 http 協(xié)議,而且支持 https(即在ssl協(xié)議上傳輸http),所以需要在 CentOS安裝 OpenSSL 庫(kù)。
yum?install?-y?openssl?openssl-devel以上安裝可以整合成一條命令
yum?-y?install?gcc?gcc-c++?pcre?pcre-devel?\
?zlib?zlib-devel?openssl?openssl-devel
0x02:創(chuàng)建Nginx用戶及Nginx用戶組
先創(chuàng)建一個(gè)名為nginx且沒有登錄權(quán)限的用戶和一個(gè)名為nginx的用戶組
創(chuàng)建Nginx用戶組
創(chuàng)建`nginx`用戶組(`-r`選項(xiàng)表示創(chuàng)建一個(gè)系統(tǒng)用戶組)
groupadd?-r?nginx創(chuàng)建用戶并加入到nginx系統(tǒng)用戶組
創(chuàng)建Nginx用戶
useradd?-r?-g?nginx?-s?/sbin/nologin?-d?/usr/local/nginx?-M?nginx
-r: 添加系統(tǒng)用戶( 這里指將要被創(chuàng)建的系統(tǒng)用戶`nginx`)
-g: 指定要?jiǎng)?chuàng)建的用戶所屬組( 這里指添加新系統(tǒng)用戶`nginx`到`nginx`系統(tǒng)用戶組 )
-s: 新帳戶的登錄`shell`( `/sbin/nologin` 這里設(shè)置為將要被創(chuàng)建系統(tǒng)用戶`nginx`不能用來登錄系統(tǒng) )
-d: 新帳戶的主目錄( 這里指定將要被創(chuàng)建的系統(tǒng)用戶`nginx`的家目錄為 `/usr/local/nginx` )
-M: 不要?jiǎng)?chuàng)建用戶的主目錄( 也就是說將要被創(chuàng)建的系統(tǒng)用戶`nginx`不會(huì)在 `/home` 目錄下創(chuàng)建 `nginx` 家目錄 )
0x03:源碼安裝Nginx
下載Nginx
wget?http://nginx.org/download/nginx-1.16.1.tar.gz
解壓
tar?-zxvf?nginx-1.16.1.tar.gz?-C?./nginx
編譯安裝Nginx
cd?./nginx/nginx-1.16.1/
./configure?--prefix=/usr/local/nginx?--user=nginx?--group=nginx?
make
make?install
這樣就安裝成功了。安裝成功后,如何要查看Nginx內(nèi)置模塊或者查看自定義模塊
查看Nginx內(nèi)置模塊
cat?./auto/options?|?grep?YES
查看自定義模塊

目前還沒有添加第三方自定義模塊
添加第三方模塊
/usr/local/nginx/sbin/nginx?-V
/root/nginx/nginx-1.16.1/configure?上條命令的configure?arguments值?\
???????--add-module=THIRD_MODULE_PATH實(shí)際上就是下載對(duì)應(yīng)版本的Nginx源碼包、解壓后,然后帶上之前的./configure參數(shù) + 第三方模塊重新編譯
0x04:驗(yàn)證是否安裝成功
一些常用的啟動(dòng)、關(guān)閉、加強(qiáng)配置命令
cd?/usr/local/nginx/sbin/
./nginx? # 啟動(dòng)
./nginx?-s?stop #關(guān)閉
./nginx?-s?quit
./nginx?-s?reload #重新加載配置
啟動(dòng)成功后訪問:http://127.0.0.1:8080

./nginx -s quit:此方式停止步驟是待nginx進(jìn)程處理任務(wù)完畢進(jìn)行停止。
./nginx?-s?stop:此方式相當(dāng)于先查出nginx進(jìn)程id再使用kill命令強(qiáng)制殺掉進(jìn)程。
0x05:生產(chǎn)環(huán)境一些非常有用的經(jīng)驗(yàn)
先停止再啟動(dòng)(推薦)
對(duì) nginx 進(jìn)行重啟相當(dāng)于先停止再啟動(dòng),即先執(zhí)行停止命令再執(zhí)行啟動(dòng)命令。
./nginx?-s?quit
./nginx修改nginx.conf后,重新加載配置文件
當(dāng)nginx的配置文件nginx.conf修改后,要想讓配置生效需要重啟nginx,使用nginx -s reload不用先停止nginx,再啟動(dòng)nginx。即可將配置信息在 nginx中生效。
./nginx?-s?reload
開機(jī)自啟動(dòng)Nginx
在rc.local增加啟動(dòng)代碼就可以了
vi?/etc/rc.local即增加一行?
/usr/local/nginx/sbin/nginx
設(shè)置rc.local文件執(zhí)行權(quán)限
chmod?755?rc.local

參考:
https://www.cnblogs.com/liujuncm5/p/6713784.html
https://segmentfault.com/a/1190000016498647
☆
往期精彩
☆
01?Sentinel如何進(jìn)行流量監(jiān)控
02?Nacos源碼編譯
03?基于Apache Curator框架的ZooKeeper使用詳解
關(guān)注我
每天進(jìn)步一點(diǎn)點(diǎn)
