Nginx從安裝到入門逝钥,基礎(chǔ)篇

作為一個(gè)前端開(kāi)發(fā)人員,懂點(diǎn)服務(wù)器端的知識(shí)也是必不可少的拱镐,畢竟艘款,我們可不想為了做一個(gè)簡(jiǎn)單的測(cè)試還得去麻煩別人,自給自足沃琅,沒(méi)什么不好磷箕。如果你有時(shí)間和精力,向全棧邁進(jìn)也未嘗不可阵难。

我最近正在做一個(gè)仿iOS端微信的聊天App-WChat岳枷,從前端到后臺(tái),全都是靠自己來(lái)實(shí)現(xiàn)呜叫。所以最近也接觸了一些服務(wù)器知識(shí)空繁,后面還準(zhǔn)備了一篇關(guān)于Node.js的文章。該項(xiàng)目的WebSocket是通過(guò)Node.js來(lái)實(shí)現(xiàn)的朱庆,后期的數(shù)據(jù)請(qǐng)求可能也是基于Node.js實(shí)現(xiàn)盛泡。

Nginx介紹

Nginx(engine x)是一個(gè)高性能的HTTP服務(wù)器(其實(shí)不止HTTP服務(wù)器),一般主要用作負(fù)載均衡反向代理(如果你不清楚什么是反向代理娱颊,可以閱讀我的另一篇文章)傲诵。

Nginx有一個(gè)主進(jìn)程和很多工作進(jìn)程,主進(jìn)程的作用只有一個(gè):通過(guò)讀取配置文件(nginx.conf)來(lái)維持工作進(jìn)程正常工作箱硕。工作進(jìn)程對(duì)應(yīng)的才是實(shí)際的請(qǐng)求(request)拴竹,Nginx會(huì)自動(dòng)將客戶端的請(qǐng)求高效的分發(fā)給工作進(jìn)程。工作進(jìn)程的數(shù)量在配置文件中定義剧罩,或者通過(guò)CPU的核心數(shù)自動(dòng)調(diào)整栓拜。(可參考官方文檔

在Linux系統(tǒng)下,Nginx的配置文件默認(rèn)在/usr/local/nginx/conf/nginx.conf/etc/nginx/nginx.conf/usr/local/etc/nginx/nginx.conf中幕与。我是在CentOS系統(tǒng)下使用的Nginx挑势,本篇就基于CentOS來(lái)介紹。

Nginx安裝

對(duì)于Nginx的安裝啦鸣,官方的文檔在這里潮饱,建議參閱官方說(shuō)明(比較考驗(yàn)英文)。我是一路上踏過(guò)很多坑才把Nginx安裝好(主要是由于Nginx版本和Linux版本都在不斷更新诫给,而百度出來(lái)的大多數(shù)教程都是過(guò)時(shí)的饼齿,或多或少都會(huì)有些問(wèn)題)。

yum安裝

推薦使用yum來(lái)安裝蝙搔,簡(jiǎn)單省事。官方鏈接

方法很簡(jiǎn)單考传,首先創(chuàng)建/etc/yum.repos.d/nginx.repo文件吃型,然后寫入以下內(nèi)容:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1

其中的OS是你的Linux版本,我的是centos僚楞,直接替換就好勤晚。OSRELEASE是版本號(hào),6.x就寫6泉褐,7.x就寫7赐写。比如我的baseurl就是http://nginx.org/packages/centos/6/$basearch/

然后就可以直接使用yum install -y nginx命令來(lái)一建安裝膜赃,搞定挺邀。

通過(guò)yum安裝的Nginx的配置文件可能位于/etc/nginx/nginx.conf

源碼安裝

不推薦使用這種方法跳座,對(duì)于新手來(lái)說(shuō)太折騰了端铛。首先要安裝依賴包:gccg++疲眷、PCRE禾蚕、zlibopenSSL狂丝。

安裝依賴

  • 安裝gcc换淆、g++,用來(lái)編譯源碼几颜;
$ yum install -y gcc gcc-c++
  • PCRE倍试,Perl正則表達(dá)式;
$ yum install pcre pcre-devel
  • zlib蛋哭,gzip壓縮易猫;
$ yum install zlib zlib-devel
  • OpenSSL,SSL協(xié)議。
$ yum install openssl openssl-devel

如果你愛(ài)折騰准颓,這些依賴包也可以下載源碼哈蝇,通過(guò)編譯來(lái)安裝。這里最頭疼的就是版本之間的差異攘已,涉及到的依賴包太多炮赦,有時(shí)候版本之間就會(huì)不兼容,或者需要其他的一些配置样勃。

安裝Nginx

官網(wǎng)下載Nginx吠勘,最好不要下載最新版本,如果最新版本跟網(wǎng)上大多數(shù)教程說(shuō)的有差異的話峡眶,真的很折騰人剧防。

Linux下命令行操作:

# 下載源碼
$ wget http://nginx.org/download/nginx-1.13.0.tar.gz

# 解壓源碼
$ tar xvf nginx-1.13.0.tar.gz

# 進(jìn)入源碼目錄
$ cd nginx-1.13.0
# 配置、編譯辫樱、安裝
$ ./configure
$ make
$ make install

如果順利的話峭拘,Nginx就已經(jīng)安裝完成啦。如果不順利的話狮暑,就自行百度去或直接采用上面介紹的yum來(lái)安裝鸡挠。./configure命令可以帶很多參數(shù)進(jìn)行配置,我記不住那么多搬男,需要的話還是自行百度拣展。

這就是安裝Nginx大概的流程,先安裝依賴缔逛,再安裝Nginx备埃。不同系統(tǒng)不同版本之間可能會(huì)有差異,按照上面的方法你也不一定會(huì)成功褐奴。起初我在./configure這一步就總是失敗瓜喇,就算帶上詳細(xì)的參數(shù)(--sbin-path之類的)也是失敗。

Nginx基本使用

如果你已經(jīng)成功安裝Nginx歉糜,那么你現(xiàn)在直接在命令行中敲入nginx乘寒,然后回車,即可啟動(dòng)Nginx服務(wù)器匪补。這時(shí)伞辛,你就可以在客戶端輸入你服務(wù)器的IP地址,就可以訪問(wèn)服務(wù)器默認(rèn)的頁(yè)面了夯缺。

啟動(dòng)蚤氏、停止、重新加載配置信息

啟動(dòng)Nginx之后踊兜,你就可以使用下面的命令格式進(jìn)行簡(jiǎn)單的操作了竿滨。

$ nginx -s signal

其中,signal可以是以下指令:

  • stop:關(guān)閉Nginx,會(huì)立刻終止所有的客戶端請(qǐng)求于游。
  • quit:關(guān)閉Nginx毁葱,直接翻譯過(guò)來(lái)就是優(yōu)雅的關(guān)閉。它會(huì)等當(dāng)前所有的請(qǐng)求完成之后再關(guān)閉Nginx贰剥。
  • reload:重新加載配置文件倾剿。一般當(dāng)你修改配置文件后,使用它可以讓修改的配置生效蚌成。
  • reopen:重新打開(kāi)日志文件前痘,目前還沒(méi)用到它。

官方還介紹了通過(guò)kill指令來(lái)向Nginx進(jìn)程發(fā)送這些操作信號(hào)担忧。

配置文件簡(jiǎn)單說(shuō)明

打開(kāi)配置文件vim /usr/local/nginx/conf/nginx.conf芹缔,文件結(jié)構(gòu)大致如下:

http {
    server {
        listen  80;
        server_name www.mohng.com;
        
        location / {
            root    html;
            index   index.html index.htm;
        }
        
        location /wchat {
            root    html;
            index   index.html;
        }
    }
    
    server {
        listen  8080;
        serer_name  mail.mohng.com;
        
        location / {
            index index.html;
        }
    }
}

其中,一個(gè)server就相當(dāng)于一個(gè)服務(wù)器瓶盛,你可以配置多個(gè)server模塊來(lái)虛擬多個(gè)服務(wù)器最欠。listen表示該服務(wù)器監(jiān)聽(tīng)哪個(gè)端口,默認(rèn)是80端口蓬网。server_name表示匹配主機(jī)名,比如我的server_namewww.mohng.com鹉勒,那么帆锋,當(dāng)客戶端通過(guò)域名www.mohng.com(前提是該域名已經(jīng)正確解析到該服務(wù)器的IP地址)來(lái)訪問(wèn)的時(shí)候,就是匹配到這個(gè)服務(wù)器禽额。如果客戶端通過(guò)域名mail.mohng.com:8080來(lái)訪問(wèn)的時(shí)候锯厢,就會(huì)匹配到下面那個(gè)服務(wù)器。如果你通過(guò)IP直接訪問(wèn)脯倒,會(huì)默認(rèn)訪問(wèn)第一個(gè)服務(wù)器实辑。

location就是匹配的路由,root是返回給客戶端資源文件的根目錄藻丢,它是相對(duì)nginx路徑的剪撬,也可以指定絕對(duì)路徑(比如:/usr/local/nginx/www)。index就是默認(rèn)返回的文件名(比如index.html悠反,index.php残黑,index.asp等)。

配置簡(jiǎn)單的反向代理服務(wù)器斋否,只需在匹配到的路由location模塊中梨水,使用proxy_pass來(lái)轉(zhuǎn)到真實(shí)的服務(wù)器。

location / {
    proxy_pass http://www.baidu.com;
}

更多配置文件的詳細(xì)說(shuō)明請(qǐng)參閱官方文檔茵臭。

總結(jié)

其實(shí)疫诽,Nginx本身不難,難的是操蛋的英文。現(xiàn)在大多數(shù)工具奇徒、框架雏亚、技術(shù)文檔,都是大篇大篇的英文逼龟,看起來(lái)實(shí)在痛苦评凝。就比如ReactVue,我相信在國(guó)內(nèi)腺律,學(xué)好Vue比學(xué)好React要容易的多吧奕短。

不管什么東西,最好的學(xué)習(xí)途徑還是官方文檔匀钧,畢竟翎碑,官方的文檔永遠(yuǎn)都是最新的。就拿webpack來(lái)說(shuō)之斯,現(xiàn)在網(wǎng)絡(luò)上大部分教程都還是基于1.x的日杈,如果直接拿來(lái)在2.x中使用全是坑。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末佑刷,一起剝皮案震驚了整個(gè)濱河市莉擒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瘫絮,老刑警劉巖涨冀,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異麦萤,居然都是意外死亡鹿鳖,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門壮莹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)翅帜,“玉大人,你說(shuō)我怎么就攤上這事命满±缘危” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵胶台,是天一觀的道長(zhǎng)狭莱。 經(jīng)常有香客問(wèn)我,道長(zhǎng)概作,這世上最難降的妖魔是什么腋妙? 我笑而不...
    開(kāi)封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮讯榕,結(jié)果婚禮上骤素,老公的妹妹穿的比我還像新娘匙睹。我一直安慰自己,他們只是感情好济竹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布痕檬。 她就那樣靜靜地躺著,像睡著了一般送浊。 火紅的嫁衣襯著肌膚如雪梦谜。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天袭景,我揣著相機(jī)與錄音唁桩,去河邊找鬼。 笑死耸棒,一個(gè)胖子當(dāng)著我的面吹牛荒澡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播与殃,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼单山,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了幅疼?” 一聲冷哼從身側(cè)響起米奸,我...
    開(kāi)封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎爽篷,沒(méi)想到半個(gè)月后悴晰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡狼忱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年膨疏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了一睁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钻弄。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖者吁,靈堂內(nèi)的尸體忽然破棺而出窘俺,到底是詐尸還是另有隱情,我是刑警寧澤复凳,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布瘤泪,位于F島的核電站,受9級(jí)特大地震影響育八,放射性物質(zhì)發(fā)生泄漏对途。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一髓棋、第九天 我趴在偏房一處隱蔽的房頂上張望实檀。 院中可真熱鬧惶洲,春花似錦、人聲如沸膳犹。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)须床。三九已至铐料,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間豺旬,已是汗流浹背钠惩。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留哈垢,地道東北人妻柒。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像耘分,于是被迫代替她去往敵國(guó)和親举塔。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 第一章 Nginx簡(jiǎn)介 Nginx是什么 沒(méi)有聽(tīng)過(guò)Nginx求泰?那么一定聽(tīng)過(guò)它的“同行”Apache吧央渣!Ngi...
    JokerW閱讀 32,670評(píng)論 24 1,002
  • Page 1:nginx 服務(wù)器安裝及配置文件詳解 CentOS 6.2 x86_64 安裝 nginx 1.1 ...
    xiaojianxu閱讀 8,535評(píng)論 1 41
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)渴频,斷路器芽丹,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139
  • 1. Nginx的模塊與工作原理 Nginx由內(nèi)核和模塊組成,其中卜朗,內(nèi)核的設(shè)計(jì)非常微小和簡(jiǎn)潔拔第,完成的工作也非常簡(jiǎn)單...
    rosekissyou閱讀 10,211評(píng)論 5 124
  • 編譯自:installing-nginx-open-source 目錄 選擇 Stable 還是 Mainline...
    C86guli閱讀 3,849評(píng)論 0 21