Linux安裝Nginx

??? Hello World ! 是一種心態(tài),也是一種格局。力透紙背奄喂,寫小白看得懂的技術(shù)文章铐殃!

一、準(zhǔn)備工作

??? 1跨新、Linux系統(tǒng)服務(wù)器富腊,例如這里使用的系統(tǒng)是CentOS7.7

??? 2、SSH連接工具域帐,用于遠(yuǎn)程連接Linux服務(wù)器赘被,推薦使用SecureCRT

??? 3、Nginx安裝文件肖揣,這里安裝的版本為nginx-1.17.5民假,官網(wǎng)下載地址:http://nginx.org/download/nginx-1.17.5.tar.gz

nginx-1.17.5.tar.gz下載

??? 4、下載后的Nginx安裝文件nginx-1.17.5.tar.gz龙优,通過SecureCRT中的文件上傳工具SecureFX上傳到Linux服務(wù)器(在Linux服務(wù)器上也可以直接使用wget http://nginx.org/download/nginx-1.17.5.tar.gz下載)

使用SecureFX工具上傳文件
將文件上傳到服務(wù)器

二羊异、編譯安裝

??? 1、解壓Nginx安裝包nginx-1.17.5.tar.gz/usr/local/src/目錄彤断,解壓出來的目錄為nginx-1.17.5

[root@localhost ~]# ll
total 692696
-rw-------. 1 root root      1430 Oct 22 11:05 anaconda-ks.cfg
-rw-r--r--. 1 root root  10267082 Oct 27 16:29 apache-tomcat-8.5.47.tar.gz
-rw-r--r--. 1 root root 194151339 Oct 27 12:39 jdk-8u231-linux-x64.tar.gz
-rw-r--r--. 1 root root 503854832 Oct 27 19:19 mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz
-rw-r--r--. 1 root root   1036056 Oct 27 16:35 nginx-1.17.5.tar.gz
[root@localhost ~]# tar -zxvf nginx-1.17.5.tar.gz -C /usr/local/src/

??? 2球化、編譯準(zhǔn)備

進(jìn)入解壓后的安裝文件目錄/usr/local/src/nginx-1.17.5/,執(zhí)行./configure命令瓦糟。這一步用來生成 Makefile筒愚,為下一步的編譯做準(zhǔn)備,可以通過在./configure后加參數(shù)來對(duì)安裝進(jìn)行控制菩浙,比如./configure --prefix=/usr/意思是將該軟件安裝在 /usr/目錄下巢掺,不指定時(shí)默認(rèn)的安裝目錄為/usr/local/(這里我們安裝在默認(rèn)的安裝目錄下)。

[root@localhost src]# cd nginx-1.17.5/
[root@localhost nginx-1.17.5]# ll
total 760
drwxr-xr-x. 6 1001 1001   4096 Nov  7 11:04 auto
-rw-r--r--. 1 1001 1001 300262 Oct 22 23:16 CHANGES
-rw-r--r--. 1 1001 1001 458263 Oct 22 23:16 CHANGES.ru
drwxr-xr-x. 2 1001 1001    168 Nov  7 11:04 conf
-rwxr-xr-x. 1 1001 1001   2502 Oct 22 23:16 configure
drwxr-xr-x. 4 1001 1001     72 Nov  7 11:04 contrib
drwxr-xr-x. 2 1001 1001     40 Nov  7 11:04 html
-rw-r--r--. 1 1001 1001   1397 Oct 22 23:16 LICENSE
drwxr-xr-x. 2 1001 1001     21 Nov  7 11:04 man
-rw-r--r--. 1 1001 1001     49 Oct 22 23:16 README
drwxr-xr-x. 9 1001 1001     91 Nov  7 11:04 src
[root@localhost nginx-1.17.5]# ./configure

./configure編譯選項(xiàng)如下:

–prefix=<path>  Nginx安裝路徑劲蜻。如果沒有指定陆淀,默認(rèn)為 /usr/local/nginx

–sbin-path=<path>  Nginx可執(zhí)行文件安裝路徑。只能安裝時(shí)指定先嬉,如果沒有指定轧苫,默認(rèn)為 <prefix>/sbin/nginx

–conf-path=<path> 在沒有給定`–c`選項(xiàng)下默認(rèn)的`nginx.conf`的路徑。如果沒有指定疫蔓,默認(rèn)為 <prefix>/conf/nginx.conf

–pid-path=<path>  在nginx.conf中沒有指定pid指令的情況下含懊,默認(rèn)的Nginx.pid的路徑。如果沒有指定衅胀,默認(rèn)為 <prerix>/logs/nginx.pid

如果報(bào)錯(cuò)(Error)岔乔,一般是因?yàn)?code>CC或GCC環(huán)境不具備。首次編譯安裝需先安裝編譯環(huán)境滚躯,CentOS7下使用yum -y install進(jìn)行安裝

[root@localhost src]# yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

模塊依賴:Nginx的一些模塊需要其他第三方庫的支持雏门,例如gzip模塊需要zlib庫嘿歌,rewrite模塊需要pcre庫,ssl功能需要openssl庫等茁影,這里一并安裝

安裝好GCC環(huán)境后重新執(zhí)行./configure預(yù)編譯宙帝,編譯成功提示如下:

預(yù)編譯成功提示

預(yù)編譯成功在目錄中會(huì)出現(xiàn)Makefile文件:

預(yù)編譯成功出現(xiàn)Makefile文件

??? 3、編譯安裝

使用make命令編譯募闲、make install命令安裝(make uninstall是卸載):

[root@localhost nginx-1.17.5]# make
[root@localhost nginx-1.17.5]# make install

安裝后的目標(biāo)目錄為/usr/local/nginx步脓,包含conf配置文件目錄、html靜態(tài)頁面目錄蝇更、logs日志文件存放目錄、sbin可執(zhí)行文件所在目錄呼盆,四個(gè)子目錄年扩。

[root@localhost src]# cd /usr/local/nginx/
[root@localhost nginx]# ll
total 4
drwxr-xr-x. 2 root root 4096 Nov  6 09:32 conf
drwxr-xr-x. 2 root root   40 Nov  2 10:11 html
drwxr-xr-x. 2 root root   58 Nov  6 09:04 logs
drwxr-xr-x. 2 root root   19 Nov  2 10:11 sbin

三、啟動(dòng)運(yùn)行

運(yùn)行/usr/local/nginx/sbin目錄下的nginx文件即可開啟Nginx访圃。

[root@localhost nginx]# cd sbin/
[root@localhost sbin]# ll
total 3748
-rwxr-xr-x. 1 root root 3835368 Nov  2 10:11 nginx
[root@localhost sbin]# ./nginx

使用ps -ef|grep nginx命令查看Nginx進(jìn)程(master process代表主進(jìn)程厨幻,worker process代表工作進(jìn)程):

[root@localhost sbin]# ps -ef|grep nginx
root       3911      1  0 15:38 ?        00:00:00 nginx: master process ./nginx
bobo       3912   3911 19 15:38 ?        00:00:01 nginx: worker process
bobo       3913   3911 19 15:38 ?        00:00:01 nginx: worker process
bobo       3914   3911 20 15:38 ?        00:00:01 nginx: worker process
bobo       3915   3911 20 15:38 ?        00:00:01 nginx: worker process
root       3918   1588  0 15:38 pts/0    00:00:00 grep --color=auto nginx

Nginx默認(rèn)監(jiān)聽80端口,使用lsof -i:80查看80端口監(jiān)聽情況(可使用yum -y install lsof安裝lsof工具):

[root@localhost sbin]# lsof -i:80
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   3911 root    6u  IPv4  23215      0t0  TCP *:http (LISTEN)
nginx   3912 bobo    6u  IPv4  23215      0t0  TCP *:http (LISTEN)
nginx   3913 bobo    6u  IPv4  23215      0t0  TCP *:http (LISTEN)
nginx   3914 bobo    6u  IPv4  23215      0t0  TCP *:http (LISTEN)
nginx   3915 bobo    6u  IPv4  23215      0t0  TCP *:http (LISTEN)

瀏覽器打開http://192.168.2.128/(你的地址)訪問Nginx頁面:

Welcome to nginx!

如果不能正常訪問服務(wù)腿时,可嘗試關(guān)閉防火墻:

systemctl stop firewalld.service

四况脆、配置環(huán)境變量

為了后續(xù)方便操作Nginx,可將/usr/local/nginx/sbin/nginx可執(zhí)行文件所在目錄添加到系統(tǒng)環(huán)境變量中批糟,添加后可在任意目錄執(zhí)行nginx命令格了。

1、編輯/etc/profile系統(tǒng)配置文件

[root@localhost sbin]# vi /etc/profile

??? 2徽鼎、在配置文件/etc/profile末尾添加如下內(nèi)容(vi命令:使用上下左右鍵移動(dòng)光標(biāo)到目標(biāo)位置盛末,按i鍵進(jìn)入輸入模式編輯內(nèi)容,按Esc鍵退回到命令模式否淤,按:wq保存并退出)

export NGX_HOME=/usr/local/nginx
export NGX_PATH=${NGX_HOME}/sbin

export PATH=$PATH:${JAVA_PATH}:${NGX_PATH}

注意:export PATH=多個(gè)環(huán)境變量之間使用:(冒號(hào))分割悄但,變量使用${}表示。

??? 3石抡、使用source命令讓配置生效

[root@localhost sbin]# source /etc/profile

五檐嚣、常用命令

??? 1、Nginx常用命令(配置了環(huán)境變量之后可在任意目錄執(zhí)行nginx命令)

啟動(dòng)命令(默認(rèn)使用/usr/local/nginx/conf/nginx.conf配置文件):

/usr/loacl/nginx/sbin/nginx

指定配置文件啟動(dòng):

nginx -c /usr/local/nginx/conf/nginx.conf

測(cè)試當(dāng)前Nginx配置文件是否正確:

nginx -t

測(cè)試指定的Nginx配置文件是否正確:

nginx -t -c /usr/local/nginx/conf/nginx.conf

修改配置后重新加載生效:

nginx -s reload

當(dāng)新的配置文件測(cè)試通過后啰扛,通過nginx -s reload命令加載修改后的配置文件嚎京,命令下達(dá)后:

a. Nginx的master進(jìn)程檢查配置文件的正確性,若是錯(cuò)誤則返回錯(cuò)誤信息隐解,Nginx繼續(xù)采用原配置文件進(jìn)行工作(因?yàn)?code>worker進(jìn)程未受到影響)挖藏;
b. Nginx啟動(dòng)新的worker進(jìn)程,采用新的配置文件厢漩;
c. Nginx將新的請(qǐng)求分配新的worker進(jìn)程膜眠;
d. Nginx等待以前的worker進(jìn)程的全部請(qǐng)求響應(yīng)完畢,關(guān)閉相關(guān)worker進(jìn)程;
e. 重復(fù)上面過程宵膨,直到全部舊的worker進(jìn)程都被關(guān)閉掉架谎。

重新加載日志文件:

nginx -s reopen

開啟日志后(例如access.log),日志文件中存放著所有的訪問記錄辟躏,時(shí)間長(zhǎng)了文件會(huì)越積越大谷扣。必要時(shí)需要做日志切割(由于Linux系統(tǒng)文件句柄的特點(diǎn),當(dāng)文件被打開的情況下使用mv移動(dòng)文件捎琐,原來操作這個(gè)文件的進(jìn)程還是有該文件的inode信息会涎,會(huì)繼續(xù)讀寫原來的文件,因此在不關(guān)閉進(jìn)程的情況下簡(jiǎn)單的mv是無法切割文件的)

Nginx文件切割過程如下:

a. mv當(dāng)前日志文件到其他目錄瑞凑,這個(gè)時(shí)候Nginx繼續(xù)寫原來的文件(寫入到新位置文件中)末秃;
b. 使用nginx -s reopen命令生成日志文件,這時(shí)Nginx會(huì)把新產(chǎn)生的日志信息寫到新生成的日志文件中籽御。

這樣就完成了日志的切割工作练慕,同時(shí)切割過程中沒有日志的丟失。

快速停止Nginx:

nginx -s stop

優(yōu)雅的停止Nginx:

nginx -s quit

下一篇技掏,我們深入探索Nginx配置文件铃将,完成:1、反向代理哑梳;2劲阎、熱備;3鸠真、負(fù)載均衡(輪詢哪工、權(quán)重、IP_HASH)4、緩存;5霞赫、靜態(tài)資源訪問等的配置空免。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖茴她,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異程奠,居然都是意外死亡丈牢,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門瞄沙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來己沛,“玉大人慌核,你說我怎么就攤上這事∩昴幔” “怎么了垮卓?”我有些...
    開封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)师幕。 經(jīng)常有香客問我粟按,道長(zhǎng),這世上最難降的妖魔是什么霹粥? 我笑而不...
    開封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任灭将,我火速辦了婚禮,結(jié)果婚禮上后控,老公的妹妹穿的比我還像新娘庙曙。我一直安慰自己,他們只是感情好忆蚀,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開白布矾利。 她就那樣靜靜地躺著姑裂,像睡著了一般馋袜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上舶斧,一...
    開封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天欣鳖,我揣著相機(jī)與錄音,去河邊找鬼茴厉。 笑死泽台,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的矾缓。 我是一名探鬼主播怀酷,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼嗜闻!你這毒婦竟也來了蜕依?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤琉雳,失蹤者是張志新(化名)和其女友劉穎样眠,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體翠肘,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡檐束,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了束倍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片被丧。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盟戏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出晚碾,到底是詐尸還是另有隱情抓半,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布格嘁,位于F島的核電站笛求,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏糕簿。R本人自食惡果不足惜探入,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望懂诗。 院中可真熱鬧蜂嗽,春花似錦、人聲如沸殃恒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽离唐。三九已至病附,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間亥鬓,已是汗流浹背完沪。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嵌戈,地道東北人覆积。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像熟呛,于是被迫代替她去往敵國(guó)和親宽档。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348