Nginx是幹啥的?為什麼他這麼受重視?
對于這個問題用最簡單的話來說,Nginx類似是一個伺服器軟體,他可以控制流量去那一邊,來實作負載均衡。比如登陸一個很火的網站,網站雖然用的是一個域名,但是肯定機房裡不會是隻有一台伺服器,而是好幾十台乃至成百上千台伺服器在一起發功,當使用者接入的時候,Nginx就會根據情況配置設定使用者去不同的子伺服器通路,這樣不會讓局部的伺服器壓力過大,這樣的“負載均衡”對伺服器的穩定是很有幫助的。
當然負載均衡僅僅是nginx能力的一部分。
而雖然規定了子伺服器,而且每個子伺服器可以有自己的IP位址,還需要應用NAT技術是可以映射到同一個共用IP上的,那麼這個共用IP也就是使用者所直覺輸入的域名位址。這部分是CCNA的内容,算是運維人員的額外工作擴充了。
上篇有說,Nginx的标準啟動指令格式是“# Nginx位址 -c Nginx對應配置檔案位址”,我的Nginx的配置檔案是預設路徑,即/usr/local/nginx/conf/nginx,而配置檔案位址也是預設的,即/usr/local/nginx/conf/nginx/conf,是以預設情況下,nginx的服務啟動指令是:#/usr/local/nginx/conf/nginx -c /usr/local/nginx/conf/nginx.conf
看看Nginx的預設配置檔案
在這裡,我們可以先#vim /usr/local/nginx/conf/nginx/conf,得到了如下的兩張圖:
<a href="http://s3.51cto.com/wyfs02/M01/79/BA/wKiom1aZJ2OTuuC5AACyIYE2its744.png" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M00/79/BA/wKiom1aZJ2SxxW6AAACxs1qF36Q649.png" target="_blank"></a>
第一行user這裡就是用來規定使用者的,這裡可以填任意名字,可以填root,這樣就是root管理者可以操作這個nginx伺服器端,但是處于安全考慮,填nobody。這裡填了nobody,使用#ps -ef|grep nginx檢視程序号的時候,work process對應的第一列寫得也會是nobody。
第二行是工作程序,我填寫的auto,其實很多人說可以填寫cpu核數或者是核數的兩倍,whatever,auto也沒出錯。
然後即使一些日志檔案的儲存路徑,PID檔案儲存路徑神馬的,基本保持預設情況就好。
然後這裡我們看到nginx的強大之處,他可以支援多達50000個使用者同時通路,這裡說的通路指的是“重新整理”,也就是可以多達50000個使用者同分同秒一起F5重新整理目前頁面,這是一個很了不起的能力,Apache貌似最多支援不到2000個,但是毛子出産的nginx卻可以支援50000多個,很牛,這裡也可以根據實際需要手動下調一點。
再往下看紅框的内容就表達了預設情況是使用80端口來連結伺服器、伺服器的名稱、以及首頁檔案和首頁檔案位址。這個格式要記住,一會做子伺服器的時候要用到。
最後一個紅框就是手動選擇字元格式,gb2312.
這就是nginx.conf裡的全部内容,一會做子伺服器的時候,我們要按照類似這個.conf檔案的格式也寫一個差不多的配置檔案,作為啟動指令的一部分。
Nginx配置虛拟主機的步驟
1)配置主機的IP位址及各虛拟主機的IP位址;
2)将這些IP位址分别與對應的虛拟主機綁定,實作“軟硬結合”。
先在終端下聯網,然後#ifconfig一下,得到目前的IP位址,如圖。
<a href="http://s5.51cto.com/wyfs02/M02/79/B9/wKioL1aZKrijjiJiAAB6rw8a9Uc366.png" target="_blank"></a>
目前的IP位址是192.168.157.128,網關是192.168.157.255,掩碼24位。
使用#ifconfig eth0 192.168.1.9 netmask 255.255.255.0,将IP位址更改成192.168.1.9/24,效果如下圖:
<a href="http://s3.51cto.com/wyfs02/M00/79/BA/wKiom1aZKvSiSFfGAAB7-6idMJI417.png" target="_blank"></a>
看到網關位址也直接智能化的更改成1.255了,滿貼心的。
現在假設我這個虛拟機要分成兩個兩個虛拟伺服器,A虛拟伺服器的IP位址是192.168.1.5,B虛拟伺服器的IP位址是192.168.1.15,全是24位。
設定A伺服器所用到的指令是#ifconfig eth0:1 192.168.1.5 [brandcast 192.168.1.255] network 255.255.255.0,中間的廣播位址centos 6.7是不用寫的,但是有些版本是需要寫得,這個無關大雅。B伺服器的指令就照葫蘆畫瓢吧,然後檢視結果。
虛拟主機在配置檔案裡配置,也可以在上面剛剛vim過的nginx.conf裡配置,但是不推薦,因為nginx.conf是主要檔案,它要是垮了,整個nginx服務也會随着報帳。是以我們可以touch一個conf檔案,于是#touch xunizhuji.conf,然後vim它,在裡面效仿nginx.conf的架構寫一個配置檔案。
<a href="http://s5.51cto.com/wyfs02/M01/79/BA/wKiom1aZNubxMggzAABiv1gwNuc339.png" target="_blank"></a>
因為設定了A和B兩個伺服器,于是就要有兩個server,log位址和location位址以及首頁内容都設定好了。
這個時候,我們傳回html檔案夾下去分别設定server1和server2,裡面對應設定index.html,裡面的内容自己随便寫,寫完了之後儲存。這樣就把分虛拟伺服器的首頁和IP位址綁定了。
然後就#/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/xunizhuji.conf,這個指令符合“nginx啟動檔案 -c nginx配置檔案”指令結構。确認現在nginx服務開啟之後,就可以在位址欄裡輸入192.168.1.5和192.168.1.15,對應的index.html内容就會出現了。
<a href="http://s1.51cto.com/wyfs02/M00/79/B9/wKioL1aZOJbiKyxtAAAiCdXNpYE329.png" target="_blank"></a>
<a href="http://s1.51cto.com/wyfs02/M02/79/BA/wKiom1aZOGHBv-3PAAAiPiGq1Ic439.png" target="_blank"></a>
但是,我們主機的192.168.1.9是打不開的了,至此,整個虛拟伺服器配置完畢。
本文轉自 蘇幕遮618 51CTO部落格,原文連結:http://blog.51cto.com/chenx1242/1735507