Nginx之安裝

首先從官網(wǎng)上http://nginx.org/下載最新的stable version源碼,當前最新版本為nginx-1.10.2.tar.gz烹骨。

1、 configure

解壓之后材泄,會發(fā)現(xiàn)里面有一個名為“configure”的文件:

1.png

configure本身是一個Shell腳本沮焕,中間會調(diào)用<nginx-source-path>/auto/目錄下別的腳本執(zhí)行各種任務(wù)。根據(jù)不同的用途拉宗,auto目錄下面的腳本各司其職峦树,有檢查編譯器版本的,有檢查操作系統(tǒng)版本的旦事,有檢查標準庫版本的魁巩,有檢查模塊依賴情況的,有關(guān)于安裝的姐浮,有關(guān)于初始化的谷遂,有關(guān)于多線程檢查的等等。configure作為一個總驅(qū)動卖鲤,調(diào)用這些腳本去生成版本信息頭文件肾扰、默認被包含的模塊的聲明代碼和makefile文件,版本信息頭文件和默認被包含的模塊的聲明代碼被放置在新創(chuàng)建的objs目錄下蛋逾。

插段廣告集晚,先來普及一下有關(guān)makefile的知識。

一般來說区匣,無論是C還是C++偷拔,首先要把源文件編譯成中間代碼文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件莲绰,即 Object File欺旧,這個動作叫做編譯(compile),每個源文件都應(yīng)該對應(yīng)于一個中間目標文件(O文件或是OBJ文件)蛤签。然后再把大量的Object File合成執(zhí)行文件切端,這個動作叫作鏈接(link)。

編譯時顷啼,編譯器需要保證語法的正確踏枣,函數(shù)與變量的正確。對于后者钙蒙,通常是需要告訴編譯器頭文件的所在位置(頭文件中應(yīng)該只是聲明茵瀑,而定義應(yīng)該放在C/C++文件中),只要所有的語法正確躬厌,編譯器就可以編譯出中間目標文件马昨。

鏈接時,主要是鏈接函數(shù)和全局變量扛施,所以鸿捧,我們可以使用這些中間目標文件(O文件或是OBJ文件)來鏈接我們的應(yīng)用程序。鏈接器并不管函數(shù)所在的源文件疙渣,只管函數(shù)的中間目標文件(Object File)匙奴,在大多數(shù)時候,由于源文件太多妄荔,編譯生成的中間目標文件太多泼菌,而在鏈接時需要明顯地指出中間目標文件名,這對于編譯很不方便啦租,所以哗伯,我們要給中間目標文件打個包,在Windows下這種包叫“庫文件”(Library File)篷角,也就是 .lib 文件焊刹,在UNIX下,是Archive File恳蹲,也就是 .a 文件虐块。

總結(jié)一下,源文件首先會生成中間目標文件阱缓,再由中間目標文件生成執(zhí)行文件非凌。在編譯時举农,編譯器只檢測程序語法荆针,和函數(shù)、變量是否被聲明。如果函數(shù)未被聲明航背,編譯器會給出一個警告喉悴,但可以生成Object File。而在鏈接程序時玖媚,鏈接器會在所有的Object File中找尋函數(shù)的實現(xiàn)箕肃,如果找不到,那到就會報鏈接錯誤(Linker Error)今魔。

Linux下的make命令用于編譯源代碼勺像,但是它執(zhí)行之前需要一個 makefile 文件以告訴它需要怎么樣去編譯和鏈接程序。

廣告完畢错森,繼續(xù)來說Nginx吟宦。

由于我們下載下來的是源碼,需要編譯后才能安裝涩维。在編譯安裝Nginx之前殃姓,我們需要使用configure命令做大量“幕后”工作,包括檢測操作系統(tǒng)內(nèi)核和已經(jīng)安裝的軟件瓦阐,參數(shù)解析蜗侈,中間目錄生成以及根據(jù)各種參數(shù)生成的.c文件、makefile文件等睡蟋。

所以踏幻,第一步需要運行configure腳本,該命令可以攜帶多種參數(shù)戳杀,使用configure --help查看參數(shù)列表:

2.png

例如:

  • --prefix=<path>:指定Nginx安裝路徑叫倍,默認為/usr/local/nginx
  • --sbin-path=<path> :指定Nginx可執(zhí)行文件安裝路徑豺瘤,默認為<prefix>/sbin/nginx吆倦。
  • --conf-path=<path> :指定配置文件路徑,默認為<prefix>/conf/nginx.conf坐求。
  • --pid-path=<path> :指定pid文件路徑蚕泽,默認為 <prefix>/logs/nginx.pid

注意桥嗤,Nginx的一些模塊需要依賴其他lib庫须妻,如果系統(tǒng)沒有安裝,運行configure命令的時候會報這樣的錯誤:

./configure: error: the HTTP rewrite module requires the PCRE library.You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using --with-pcre=<path> option.

一般需要提前安裝三個lib庫:

  • rewrite模塊依賴的PCRE庫
    PCRE(Perl Compatible Regular Expressions)是一個Perl庫泛领,包括 perl 兼容的正則表達式庫荒吏。Rewrite 主要的功能就是實現(xiàn)URL的重寫,Nginx的Rewrite依賴PCRE庫來實現(xiàn)正則匹配渊鞋。
  • gzip模塊依賴的 zlib 庫
    我們在Linux中經(jīng)常會用到后綴為“.gz”的文件绰更,它們就是gzip格式的∏萍罚現(xiàn)今已經(jīng)成為Internet 上使用非常普遍的一種數(shù)據(jù)壓縮格式,或者說一種文件格式儡湾。
    HTTP協(xié)議上的GZIP編碼是一種用來改進WEB應(yīng)用程序性能的技術(shù)特恬。大流量的WEB站點常常使用GZIP壓縮技術(shù)來讓用戶感受更快的速度。這一般是指WWW服務(wù)器中安裝的一個功能徐钠,當有人來訪問這個服務(wù)器中的網(wǎng)站時癌刽,服務(wù)器就將網(wǎng)頁內(nèi)容壓縮后傳輸?shù)絹碓L的電腦瀏覽器中顯示出來。一般對純文本內(nèi)容可壓縮到原大小的40%尝丐。
    zlib是一個通用的壓縮開源庫显拜,提供了在內(nèi)存中壓縮和解壓的函數(shù),包括對解壓后數(shù)據(jù)的校驗爹袁。Nginx依賴zlib庫來實現(xiàn)gzip格式的數(shù)據(jù)壓縮讼油。
  • ssl 模塊依賴的openssl庫
    SSL是Secure Sockets Layer(安全套接層協(xié)議)的縮寫,可以在Internet上提供秘密性傳輸呢簸。OpenSSL 是一個安全套接字層密碼庫矮台,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協(xié)議根时。
    Nginx依賴openssl庫實現(xiàn)https安全連接等方面的功能瘦赫。

2、make && make install

make是Linux下的編譯命令蛤迎,它根據(jù)makefile文件中描述的規(guī)則來自動進行編譯确虱。

make install是Linux下的安裝命令。

可以直接輸入make && make install一并完成編譯與安裝操作替裆。默認的安裝路徑為/usr/local/nginx校辩。

安裝完畢后,輸入nginx -v如果出現(xiàn)如下的版本信息辆童,證明安裝成功:

nginx version: nginx/1.10.2

使用nginx命令啟動Nginx宜咒,瀏覽器輸入127.0.0.1:80,會看到Nginx的默認頁面:

3.png

3把鉴、常用命令

使用nginx -h可列出所有可使用的命令列表:

4.png

常用命令如下:

  • nginx
    啟動Nginx故黑,可以利用“-c”參數(shù)指定要使用的配置文件。
  • nginx –s stop
    停止Nginx庭砍,等效于“nginx –s quit”场晶。“-s”代表采用向 Nginx 發(fā)送信號怠缸。注:stop是快速停止nginx诗轻,可能并不保存相關(guān)信息;quit是完整有序的停止nginx揭北,并保存相關(guān)信息扳炬。
  • nginx –s reload
    重載配置吏颖,修改配置文件后需要使用該命令使之生效。
  • nginx –v
    查看Nginx的版本信息鞠柄。
  • nginx –t
    檢查配置文件是否正確侦高。
  • nginx –c filename
    指定配置文件的路徑為“filename”嫉柴。默認路徑為“conf/nginx.conf”
  • nginx -g
    臨時指定一些全局配置項厌杜,以使新的配置項生效,例如:nginx -g "pid /var/nginx/test.pid"计螺,意味著會把pid文件寫到/var/nginx/test.pid中夯尽。

-g參數(shù)的約束條件是指定的配置項不能與默認路徑下的nginx.conf中的配置項相沖突,否則無法啟動登馒。就像上例那樣匙握,類似這樣的配置項:pid logs/nginx.pid,是不能存在于默認的nginx.conf中的陈轿。

另一個約束條件是圈纺,以-g方式啟動的Nginx服務(wù)執(zhí)行其他命令行時,需要把-g參數(shù)也帶上麦射,否則可能出現(xiàn)配置項不匹配的情形蛾娶。例如,如果要停止Nginx服務(wù)潜秋,那么需要執(zhí)行下面代碼:

nginx -g "pid /var/nginx/test.pid;" -s stop

如果不帶上-g "pid /var/nginx/test.pid;"蛔琅,那么找不到pid文件,也會出現(xiàn)無法停止服務(wù)的情況峻呛。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末罗售,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子钩述,更是在濱河造成了極大的恐慌寨躁,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牙勘,死亡現(xiàn)場離奇詭異朽缎,居然都是意外死亡,警方通過查閱死者的電腦和手機谜悟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門话肖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人葡幸,你說我怎么就攤上這事最筒。” “怎么了蔚叨?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵床蜘,是天一觀的道長辙培。 經(jīng)常有香客問我,道長邢锯,這世上最難降的妖魔是什么扬蕊? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮丹擎,結(jié)果婚禮上尾抑,老公的妹妹穿的比我還像新娘。我一直安慰自己蒂培,他們只是感情好再愈,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著护戳,像睡著了一般翎冲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上媳荒,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天抗悍,我揣著相機與錄音,去河邊找鬼钳枕。 笑死缴渊,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的么伯。 我是一名探鬼主播疟暖,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼田柔!你這毒婦竟也來了俐巴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤硬爆,失蹤者是張志新(化名)和其女友劉穎欣舵,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缀磕,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡缘圈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了袜蚕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糟把。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖牲剃,靈堂內(nèi)的尸體忽然破棺而出遣疯,到底是詐尸還是另有隱情,我是刑警寧澤凿傅,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布缠犀,位于F島的核電站数苫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏辨液。R本人自食惡果不足惜虐急,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望滔迈。 院中可真熱鬧止吁,春花似錦、人聲如沸亡鼠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽间涵。三九已至,卻和暖如春榜揖,著一層夾襖步出監(jiān)牢的瞬間勾哩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工举哟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留思劳,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓妨猩,卻偏偏與公主長得像潜叛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子壶硅,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345