Nginx安裝

安裝
安裝依賴
在Linux中是編譯安裝,所以要準(zhǔn)備一系列工具

yum install pcre-devel make gcc gcc-c++ ncurses-devel perl zlib zlib-devel openssl openssl-devel
工具目的 程序
編譯器 make gcc gcc-c++
安全協(xié)議 openssl openssl-devel
語(yǔ)言 perl腳本語(yǔ)言
正則表達(dá)式庫(kù) pcre-devel(用于perl語(yǔ)言)
壓縮庫(kù) zlib zlib-devel
字符處理庫(kù) ncurses-devel
cd /usr/local/
wget http://nginx.org/download/nginx-1.10.1.tar.gz
tar -zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1  

執(zhí)行Configuration配置檢查文件炎码,指定目錄到剛剛新建的nginx目錄里

./configure --prefix=/usr/local/nginx 

執(zhí)行make操作和make install進(jìn)行安裝

make
make install

安裝完成后负乡,將nginx命令移動(dòng)到$PATH的目錄下盯仪,這樣就不用每次都cd到 /usr/local/sbin 里去運(yùn)行了

mv /usr/local/nginx/sbin/nginx /usr/local/bin/

然后使用nginx -c 命令指定配置文件,接著使用 nginx -t 命令檢查配置文件是否正確羔味,得到反饋syntax is ok

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

啟動(dòng):

nginx

重啟:

nginx -s reload

立即停止:

nginx –s stop

溫和停止:

nginx -s quit

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

pkill nginx

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

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

  • HTTP
    HTTP代表在該計(jì)算機(jī)上啟動(dòng)HTTP路由欺栗,可以開啟不同的server服務(wù),所以HTTP內(nèi)可以包括多個(gè)server。
http {
  server {
    # 在80端口監(jiān)聽http服務(wù)
    # 正常情況下會(huì)和個(gè)人電腦的瀏覽器沖突,但是服務(wù)器上一般沒(méi)瀏覽器
    # 因?yàn)闉g覽器之所以能上網(wǎng)迟几,就是在80端口不停的監(jiān)聽http服務(wù)
    listen       80;  
    server_name  localhost;
    ......
  }

  server {
    # 在8080端口監(jiān)聽http服務(wù)
    listen       8080;
    server_name  localhost;
    ......
  }

  ......
}
  • Server
    接收請(qǐng)求的服務(wù)器需要將不同的請(qǐng)求按規(guī)則轉(zhuǎn)發(fā)到不同的后端服務(wù)器上消请,在 nginx 中我們可以通過(guò)構(gòu)建虛擬主機(jī)(server)的概念來(lái)將這些不同的服務(wù)配置隔離。
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;
}

這里的 listen 指監(jiān)聽端口类腮,server_name 用來(lái)指定IP或域名臊泰,多個(gè)域名對(duì)應(yīng)統(tǒng)一規(guī)則可以空格分開,index 用于設(shè)定訪問(wèn)的默認(rèn)首頁(yè)地址蚜枢,root 指令用于指定虛擬主機(jī)的網(wǎng)頁(yè)跟目錄缸逃,這個(gè)地方可以是相對(duì)地址也可以是絕對(duì)地址。
但是當(dāng) server 超過(guò)2個(gè)時(shí)厂抽,建議將不同對(duì)虛擬主機(jī)的配置放在另一個(gè)文件中需频,然后通過(guò)在主配置文件 nginx.conf 加上 include 指令包含進(jìn)來(lái)。更便于管理筷凤。

include vhosts/*.conf;

由于DNS的存在昭殉,我們可以使用一個(gè)IP對(duì)應(yīng)多個(gè)域名,比如 www.a.comwww.b.com 這個(gè)稱之為host藐守,后邊的才是路徑path挪丢,Nginx會(huì)對(duì)HTTP的Request報(bào)文做如下處理。

POST /psas/bug/image/confirm HTTP/1.1  <== 第一行才是path
Accept: application/json
Content-Type: text/plain; charset=utf-8
Cookie: JSESSIONID=h72ql6a
Host: www.a.com:8080        <== 這一行是host
Connection: close
User-Agent: Paw/3.0.12 (Macintosh; OS X/10.12.0) GCDHTTPRequest
Content-Length: 366

接收到請(qǐng)求后去HTTP報(bào)文頭拿host字段卢厂。
去和server name字段進(jìn)行匹配乾蓬,哪個(gè)匹配上用哪個(gè)處理。
如果沒(méi)有匹配上慎恒,就用listen了當(dāng)前端口的默認(rèn)server處理巢块。
默認(rèn)server可以自己設(shè)置,如果沒(méi)有設(shè)置巧号,默認(rèn)配置文件中最靠前是默認(rèn)。

  • Location
    每個(gè) url 請(qǐng)求都會(huì)對(duì)應(yīng)的一個(gè)服務(wù)姥闭,nginx 進(jìn)行處理轉(zhuǎn)發(fā)或者是本地的一個(gè)文件路徑丹鸿,或者是其他服務(wù)器的一個(gè)服務(wù)路徑。而這個(gè)路徑的匹配是通過(guò) location 來(lái)進(jìn)行的棚品。我們可以將 server 當(dāng)做對(duì)應(yīng)一個(gè)域名進(jìn)行的配置靠欢,而 location 是在一個(gè)域名下對(duì)更精細(xì)的路徑進(jìn)行配置。如果有多個(gè)匹配的location塊铜跑,則nginx選擇最長(zhǎng)前綴的那個(gè)门怪。/的location塊的前綴只有一個(gè)字符,是最短的锅纺,因此只有當(dāng)其它location都匹配失敗時(shí)掷空,這個(gè)location才會(huì)被選擇。
    匹配例子:
location  = / {
  # 只匹配"/".
  [ configuration A ] 
}
location  / {
  # 匹配任何請(qǐng)求,因?yàn)樗姓?qǐng)求都是以"/"開始
  # 但是更長(zhǎ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

具體可參考:Location配置詳細(xì)

服務(wù)靜態(tài)內(nèi)容:
web服務(wù)器的一個(gè)重要任務(wù)是對(duì)外輸出文件护锤,比如圖片和靜態(tài)網(wǎng)頁(yè)。你會(huì)實(shí)現(xiàn)一個(gè)這樣的例子:根據(jù)不同的請(qǐng)求酿傍,文件會(huì)從不同的本地目錄烙懦,如: /data/www (html) 和 /data/images 被輸出。這需要修改配置文件并且在http塊指令中建立帶有兩個(gè)location塊的server塊赤炒。
首先,創(chuàng)建/data/www的目錄并且放置一個(gè)index.html的文件氯析,然后創(chuàng)建/data/images目錄并放置一些圖片
下面的例子中它會(huì)匹配以/images/開始的請(qǐng)求(location / 也會(huì)匹配這個(gè)請(qǐng)求,但它的前綴更短) 莺褒。如掩缓,server塊指令看起來(lái)就像這樣

server {
    location / {
        root /data/www;
    }

    location /images/ {
        root /data;
    }
}

這個(gè)配置已經(jīng)可以工作了,它監(jiān)聽在標(biāo)準(zhǔn)的80端口上癣朗,并且可以在本機(jī)上通過(guò)http://localhost/ 訪問(wèn)拾因。為了響應(yīng)以/images/開頭的URI,服務(wù)器會(huì)從/data/images目錄中發(fā)送文件。比如:為了響應(yīng)http://localhost/images/example.png 旷余,nginx會(huì)發(fā)送/data/images/example.png這個(gè)文件绢记,如果不存在這樣的文件,nginx就會(huì)發(fā)送404錯(cuò)誤正卧。而不以/images/開頭的請(qǐng)求則被映射到/data/www目錄蠢熄,比如:http://localhost/some/example.html 被映射到/data/www/some/example.html文件。

建立簡(jiǎn)單的代理服務(wù)器:
nginx一個(gè)最常見的用途就是用作代理服務(wù)器炉旷,也就是把收到的請(qǐng)求傳遞給被代理的服務(wù)器签孔,并從被代理服務(wù)器中取回響應(yīng),再將其發(fā)送給客戶端窘行。
我們會(huì)配置一個(gè)基本的代理服務(wù)器饥追,對(duì)于圖片文件的請(qǐng)求,從本地目錄中發(fā)送文件罐盔,而對(duì)于其它的請(qǐng)求但绕,則把請(qǐng)求轉(zhuǎn)發(fā)給另一個(gè)被代理服務(wù)器。在這個(gè)例子里惶看,兩個(gè)服務(wù)器都會(huì)在一個(gè)單一的nginx實(shí)例中被定義捏顺。
首先,通過(guò)添加一個(gè)塊指令定義一個(gè)被代理服務(wù)器:

server {
    listen 8080;
    root /data/up1;

    location / {
    }
}

這是一個(gè)監(jiān)聽在8080端口的簡(jiǎn)單服務(wù)器(之前我們定義的server塊不聲明listen指令是因?yàn)槭褂昧藰?biāo)準(zhǔn)的80端口)并且會(huì)把所有請(qǐng)求映射到本地的 /data/upl 文件夾纬黎。創(chuàng)建這個(gè)文件夾并且放入一個(gè)index.html文件幅骄。注意,這里的root指令被放在了server上下文中本今。當(dāng)有一個(gè)location被選擇了而它的內(nèi)部卻沒(méi)有root指令時(shí)拆座,它就會(huì)使用server中的這個(gè)root指令主巍。
接下來(lái),修改在前一節(jié)中的server配置使它變?yōu)橐粋€(gè)代理服務(wù)器的配置懂拾。在第一個(gè)location塊中煤禽,添加proxy_pass指令,它的參數(shù)是被代理服務(wù)器的協(xié)議岖赋,名稱和端口檬果。(本例中,參數(shù)是 http://localhost:8080):

server {
    location / {
        proxy_pass http://localhost:8080;
    }

    location /images/ {
        root /data;
    }
}

我們現(xiàn)在修改第二個(gè)location塊唐断,使它由原先的匹配/images/前綴變?yōu)槠ヅ涞湫偷膱D片文件擴(kuò)展名选脊。修改后的location如下:

location ~ \.(gif|jpg|png)$ {
    root /data/images;
}

這個(gè)參數(shù)是一個(gè)匹配所有以.gif,.jpg或.png結(jié)尾的URI的正則表達(dá)式。~ 應(yīng)該被寫在正則表達(dá)式前面脸甘。

當(dāng)nginx選擇一個(gè)location時(shí)恳啥,它先檢查前綴,并且記錄匹配的location(最長(zhǎng)前綴),然后nginx再檢查正則表達(dá)式丹诀,如果有一個(gè)正則表達(dá)式匹配钝的,它就選擇這個(gè)location,否則铆遭,選擇之前記錄的location硝桩。
最終的代理服務(wù)器配置:

server {
    location / {
        proxy_pass http://localhost:8080/;
    }

    location ~ \.(gif|jpg|png)$ {
        root /data/images;
    }
}

現(xiàn)在,這個(gè)服務(wù)器可以將以.gif,.jpg或.png結(jié)尾的請(qǐng)求映射到本機(jī)目錄枚荣,將其它所有請(qǐng)求發(fā)送到被代理服務(wù)器碗脊。為了使配置生效,要發(fā)送reload信號(hào)橄妆。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末衙伶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子害碾,更是在濱河造成了極大的恐慌矢劲,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件慌随,死亡現(xiàn)場(chǎng)離奇詭異卧须,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)儒陨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)笋籽,“玉大人蹦漠,你說(shuō)我怎么就攤上這事〕岛#” “怎么了笛园?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵隘击,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我研铆,道長(zhǎng)埋同,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任棵红,我火速辦了婚禮凶赁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逆甜。我一直安慰自己虱肄,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布交煞。 她就那樣靜靜地躺著咏窿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪素征。 梳的紋絲不亂的頭發(fā)上集嵌,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音御毅,去河邊找鬼根欧。 笑死,一個(gè)胖子當(dāng)著我的面吹牛亚享,可吹牛的內(nèi)容都是我干的咽块。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼欺税,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼侈沪!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起晚凿,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤亭罪,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后歼秽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體应役,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年燥筷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了箩祥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡肆氓,死狀恐怖袍祖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谢揪,我是刑警寧澤蕉陋,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布捐凭,位于F島的核電站,受9級(jí)特大地震影響凳鬓,放射性物質(zhì)發(fā)生泄漏茁肠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一缩举、第九天 我趴在偏房一處隱蔽的房頂上張望垦梆。 院中可真熱鬧,春花似錦蚁孔、人聲如沸奶赔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)站刑。三九已至,卻和暖如春鼻百,著一層夾襖步出監(jiān)牢的瞬間绞旅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工温艇, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留因悲,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓勺爱,卻偏偏與公主長(zhǎng)得像晃琳,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子琐鲁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理卫旱,服務(wù)發(fā)現(xiàn),斷路器围段,智...
    卡卡羅2017閱讀 134,600評(píng)論 18 139
  • 編譯自:installing-nginx-open-source 目錄 選擇 Stable 還是 Mainline...
    C86guli閱讀 3,844評(píng)論 0 21
  • 配置運(yùn)行Nginx服務(wù)器用戶(組) 用于配置運(yùn)行Nginx服務(wù)器用戶(組)的指令是user顾翼,其語(yǔ)法格式為: use...
    吃瓜的東閱讀 4,480評(píng)論 0 41
  • 01. 崔曼舒适贸,是我在大學(xué)里認(rèn)識(shí)的第一個(gè)朋友。她在大一的時(shí)候去華南理工大學(xué)找她的高中好友涝桅,在她陪那個(gè)高中好友去參加...
    另一個(gè)陳易閱讀 1,177評(píng)論 32 46
  • 曾憶微風(fēng)起拜姿,吹散少年心。再相見已難冯遂,執(zhí)筆書舊情砾隅。 【一】小時(shí)候最喜歡梔子花,又白又香债蜜。每到梔子花開的季節(jié)晴埂,總會(huì)很希...
    稚小子閱讀 378評(píng)論 2 3