Centos下 Nginx安裝與配置

Nginx是一款輕量級(jí)的網(wǎng)頁服務(wù)器、反向代理服務(wù)器。相較于Apache涨冀、lighttpd具有占有內(nèi)存少,穩(wěn)定性高等優(yōu)勢麦萤。它最常的用途是提供反向代理服務(wù)鹿鳖。

安裝


在Centos下,yum源不提供nginx的安裝壮莹,可以通過切換yum源的方法獲取安裝翅帜。目前很多像centos7系統(tǒng)已經(jīng)自帶這幾個(gè)庫,所以安裝前可以先查看一下本地是否已經(jīng)存在命满。存在可直接跳至第四步驟涝滴。需要使用安裝包編譯安裝的,如下胶台。以下命令均需root權(quán)限執(zhí)行

首先安裝必要的庫(nginx 中g(shù)zip模塊需要 zlib 庫歼疮,rewrite模塊需要 pcre 庫,ssl 功能需要openssl庫)诈唬。選定/usr/local為安裝目錄韩脏,以下具體版本號(hào)根據(jù)實(shí)際改變。

1.安裝PCRE庫

$ cd /usr/local/
$ sudo wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.gz
$ sudo tar -zxvf pcre-8.36.tar.gz
$ cd pcre-8.36
$ sudo ./configure
$ sudo make
$ sudo make install

2.安裝zlib庫

$ cd /usr/local/ 
$ sudo wget http://zlib.net/zlib-1.2.8.tar.gz
$ sudo tar -zxvf zlib-1.2.8.tar.gz
$ cd zlib-1.2.8
$ sudo ./configure
$ sudo make
$ sudo make install

3.安裝ssl

$ cd /usr/local/
$ sudo wget http://www.openssl.org/source/openssl-1.0.1j.tar.gz
$ sudo tar -zxvf openssl-1.0.1j.tar.gz
$ sudo ./config
$ sudo make
$ sudo make install

4.安裝nginx

$ cd /usr/local/
$ sudo wget http://nginx.org/download/nginx-1.8.0.tar.gz
$ sudo tar -zxvf nginx-1.8.0.tar.gz
$ cd nginx-1.8.0  
$ sudo ./configure --prefix=/usr/local/nginx  #這一步需要按需要添加編譯參數(shù)铸磅,如下
$ sudo make
$ sudo make install

如果是使用安裝包編譯的上面幾個(gè)依賴骤素,需要在在--prefix后面接以下命令:

--with-pcre=/usr/local/pcre-8.36 指的是pcre-8.36 的源碼路徑匙睹。
--with-zlib=/usr/local/zlib-1.2.8 指的是zlib-1.2.8 的源碼路徑。

5.啟動(dòng)
先測試一下配置文件是否正確:
$ /usr/local/nginx/sbin/nginx -t

無問題可以啟動(dòng):
$ /usr/local/nginx/sbin/nginx

檢查是否啟動(dòng)成功:

打開瀏覽器訪問此機(jī)器的 IP济竹,如果瀏覽器出現(xiàn) Welcome to nginx! 則表示 Nginx 已經(jīng)安裝并運(yùn)行成功痕檬。

部分命令如下:

重啟:
$ /usr/local/nginx/sbin/nginx –s reload

停止:
$ /usr/local/nginx/sbin/nginx –s stop

測試配置文件是否正常:
$ /usr/local/nginx/sbin/nginx –t

強(qiáng)制關(guān)閉:
$ pkill nginx

配置


以上安裝方法nginx的配置文件位于

/usr/local/nginx/conf/nginx.conf

Nginx配置文件常見結(jié)構(gòu)的從外到內(nèi)依次是「http」「server」「location」等等,缺省的繼承關(guān)系是從外到內(nèi)送浊,也就是說內(nèi)層塊會(huì)自動(dòng)獲取外層塊的值作為缺省值梦谜。

Server

接收請(qǐng)求的服務(wù)器需要將不同的請(qǐng)求按規(guī)則轉(zhuǎn)發(fā)到不同的后端服務(wù)器上,在 nginx 中我們可以通過構(gòu)建虛擬主機(jī)(server)的概念來將這些不同的服務(wù)配置隔離袭景。

server {
    listen       80;
    server_name  localhost;
    root   html;
    index  index.html index.htm;
}

例如我們筆戈玩下的兩個(gè)子項(xiàng)目 passport 和 wan 就可以通過在 nginx 的配置文件中配置兩個(gè) server唁桩,servername 分別為 passport.bigertech.com 和 wan.bigertech.com。這樣的話不同的 url 請(qǐng)求就會(huì)對(duì)應(yīng)到 nginx 相應(yīng)的設(shè)置耸棒,轉(zhuǎn)發(fā)到不同的后端服務(wù)器上荒澡。

這里的 listen 指監(jiān)聽端口,server_name 用來指定IP或域名与殃,多個(gè)域名對(duì)應(yīng)統(tǒng)一規(guī)則可以空格分開单山,index 用于設(shè)定訪問的默認(rèn)首頁地址,root 指令用于指定虛擬主機(jī)的網(wǎng)頁跟目錄幅疼,這個(gè)地方可以是相對(duì)地址也可以是絕對(duì)地址米奸。

通常情況下我們可以在 nginx.conf 中配置多個(gè)server,對(duì)不同的請(qǐng)求進(jìn)行設(shè)置爽篷。就像這樣:

server {
    listen       80;
    server_name  host1;
    root   html;
    index  index.html index.htm;
}
server {
    listen       80;
    server_name  host2;
    root   /data/www/html;
    index  index.html index.htm;
}

但是當(dāng) server 超過2個(gè)時(shí)悴晰,建議將不同對(duì)虛擬主機(jī)的配置放在另一個(gè)文件中,然后通過在主配置文件 nginx.conf 加上 include 指令包含進(jìn)來逐工。更便于管理铡溪。

include vhosts/*.conf;

就可以把vhosts的文件都包含進(jìn)去啦。

Localtion

每個(gè) url 請(qǐng)求都會(huì)對(duì)應(yīng)的一個(gè)服務(wù)泪喊,nginx 進(jìn)行處理轉(zhuǎn)發(fā)或者是本地的一個(gè)文件路徑佃却,或者是其他服務(wù)器的一個(gè)服務(wù)路徑。而這個(gè)路徑的匹配是通過 location 來進(jìn)行的窘俺。我們可以將 server 當(dāng)做對(duì)應(yīng)一個(gè)域名進(jìn)行的配置饲帅,而 location 是在一個(gè)域名下對(duì)更精細(xì)的路徑進(jìn)行配置。

以上面的例子瘤泪,可以將root和index指令放到一個(gè)location中灶泵,那么只有在匹配到這個(gè)location時(shí)才會(huì)訪問root后的內(nèi)容:

    location / {
        root   /data/www/host2;
        index  index.html index.htm;
    }

location 匹配規(guī)則

~      波浪線表示執(zhí)行一個(gè)正則匹配,區(qū)分大小寫
~*    表示執(zhí)行一個(gè)正則匹配对途,不區(qū)分大小寫
^~    ^~表示普通字符匹配赦邻,如果該選項(xiàng)匹配,只匹配該選項(xiàng)实檀,不匹配別的選項(xiàng)惶洲,一般用來匹配目錄
=      進(jìn)行普通字符精確匹配

匹配例子:

location  = / {
  # 只匹配"/".
  [ configuration A ] 
}
location  / {
  # 匹配任何請(qǐng)求按声,因?yàn)樗姓?qǐng)求都是以"/"開始
  # 但是更長字符匹配或者正則表達(dá)式匹配會(huì)優(yōu)先匹配
  [ configuration B ] 
}
location ^~ /images/ {
  # 匹配任何以 /images/ 開始的請(qǐng)求,并停止匹配 其它location
  [ configuration C ] 
}
location ~* \.(gif|jpg|jpeg)$ {
  # 匹配以 gif, jpg, or jpeg結(jié)尾的請(qǐng)求. 
  # 但是所有 /images/ 目錄的請(qǐng)求將由 [Configuration C]處理.   
  [ configuration D ] 
}

請(qǐng)求:
/ -> 符合configuration A
/documents/document.html -> 符合configuration B
/images/1.gif -> 符合configuration C
/documents/1.jpg ->符合 configuration D

靜態(tài)文件映射

訪問文件的配置主要有 root 和 aliasp's 兩個(gè)指令恬吕。這兩個(gè)指令的區(qū)別容易弄混:

alias

alias后跟的指定目錄是準(zhǔn)確的签则,并且末尾必須加 /。

    location /c/ {
        alias /a/;
    }

如果訪問站點(diǎn)http://location/c訪問的就是/a/目錄下的站點(diǎn)信息铐料。

root

root后跟的指定目錄是上級(jí)目錄渐裂,并且該上級(jí)目錄下要含有和location后指定名稱的同名目錄才行。

    location /c/ {
        root /a/;
    }

這時(shí)訪問站點(diǎn)http://location/c訪問的就是/a/c目錄下的站點(diǎn)信息钠惩。

如果你需要將這個(gè)目錄展開柒凉,在這個(gè)location的末尾加上「autoindex on; 」就可以了

轉(zhuǎn)發(fā)

配置起來很簡單比如我要將所有的請(qǐng)求到轉(zhuǎn)移到真正提供服務(wù)的一臺(tái)機(jī)器的 8001 端口,只要這樣:

location / {
    proxy_pass 172.16.1.1:8001;
}

這樣訪問host時(shí)篓跛,就都被轉(zhuǎn)發(fā)到 172.16.1.1的8001端口去了膝捞。

負(fù)載均衡

upstream myserver; {
    ip_hash;    
    server 172.16.1.1:8001;
    server 172.16.1.2:8002;
    server 172.16.1.3;
    server 172.16.1.4;
}
location / {
    proxy_pass http://myserver;
}

我們在 upstream 中指定了一組機(jī)器,并將這個(gè)組命名為 myserver愧沟,這樣在 proxypass 中只要將請(qǐng)求轉(zhuǎn)移到 myserver 這個(gè) upstream 中我們就實(shí)現(xiàn)了在四臺(tái)機(jī)器的反向代理加負(fù)載均衡蔬咬。其中的 ip_hash 指明了我們均衡的方式是按照用戶的 ip 地址進(jìn)行分配。另外還有輪詢央渣、指定權(quán)重輪詢计盒、fair渴频、url_hash幾種調(diào)度算法芽丹。

總結(jié)


以上是最簡單的通過 nginx 實(shí)現(xiàn)靜態(tài)文件轉(zhuǎn)發(fā)、反向代理和負(fù)載均衡的配置卜朗。在 nginx 中所有的功能都是通過模塊來實(shí)現(xiàn)的拔第,比如當(dāng)我們配置 upstream 時(shí)是用 upstream 模塊,而 server 和 location 是在 http core 模塊场钉,其他的還有流控的 limt 模塊蚊俺,郵件的 mail 模塊,https 的 ssl 模塊逛万。他們的配置都是類似的可以再 nginx 的模塊文檔中找到詳細(xì)的配置說明泳猬。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市宇植,隨后出現(xiàn)的幾起案子得封,更是在濱河造成了極大的恐慌,老刑警劉巖指郁,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件忙上,死亡現(xiàn)場離奇詭異,居然都是意外死亡闲坎,警方通過查閱死者的電腦和手機(jī)疫粥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門茬斧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人梗逮,你說我怎么就攤上這事项秉。” “怎么了库糠?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵伙狐,是天一觀的道長。 經(jīng)常有香客問我瞬欧,道長贷屎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任艘虎,我火速辦了婚禮唉侄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘野建。我一直安慰自己属划,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布候生。 她就那樣靜靜地躺著同眯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪唯鸭。 梳的紋絲不亂的頭發(fā)上须蜗,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音目溉,去河邊找鬼明肮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛缭付,可吹牛的內(nèi)容都是我干的柿估。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼陷猫,長吁一口氣:“原來是場噩夢啊……” “哼秫舌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起绣檬,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤足陨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后河咽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钠右,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年忘蟹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了飒房。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片搁凸。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖狠毯,靈堂內(nèi)的尸體忽然破棺而出护糖,到底是詐尸還是另有隱情,我是刑警寧澤嚼松,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布嫡良,位于F島的核電站,受9級(jí)特大地震影響献酗,放射性物質(zhì)發(fā)生泄漏寝受。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一罕偎、第九天 我趴在偏房一處隱蔽的房頂上張望很澄。 院中可真熱鬧,春花似錦颜及、人聲如沸甩苛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽讯蒲。三九已至,卻和暖如春肄扎,著一層夾襖步出監(jiān)牢的瞬間墨林,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國打工反浓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留萌丈,地道東北人赞哗。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓雷则,卻偏偏與公主長得像,于是被迫代替她去往敵國和親肪笋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子月劈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)藤乙,斷路器猜揪,智...
    卡卡羅2017閱讀 134,659評(píng)論 18 139
  • Page 1:nginx 服務(wù)器安裝及配置文件詳解 CentOS 6.2 x86_64 安裝 nginx 1.1 ...
    xiaojianxu閱讀 8,539評(píng)論 1 41
  • 1. Nginx的模塊與工作原理 Nginx由內(nèi)核和模塊組成,其中坛梁,內(nèi)核的設(shè)計(jì)非常微小和簡潔而姐,完成的工作也非常簡單...
    rosekissyou閱讀 10,215評(píng)論 5 124
  • 配置運(yùn)行Nginx服務(wù)器用戶(組) 用于配置運(yùn)行Nginx服務(wù)器用戶(組)的指令是user,其語法格式為: use...
    吃瓜的東閱讀 4,495評(píng)論 0 41
  • 上一篇《WEB請(qǐng)求處理一:瀏覽器請(qǐng)求發(fā)起處理》划咐,我們講述了瀏覽器端請(qǐng)求發(fā)起過程拴念,通過DNS域名解析服務(wù)器IP钧萍,并建...
    七寸知架構(gòu)閱讀 81,007評(píng)論 21 356