前言
“覬覦”Nginx其實已經(jīng)很久了,但是之前一直忙著準備找實習啊领炫,各種考試啊什么的偶垮,也沒有時間。恰好最近空了出來帝洪,就淺淺的學了一點關于Nginx的知識似舵,順便搭建了一個模擬的負載均衡,反向代理環(huán)境葱峡。在此做下筆記啄枕,以備不時之需。
準備篇
在正式開始搭建環(huán)境之前族沃,還是需要 多多少少的具備一點Linux相關的知識频祝,因為以后服務器大部分還是要跑在Linux系統(tǒng)上的。
我這里就簡單的使用Ubuntu14.04LTS來做測試了脆淹。因此需要安裝一些編譯軟件需要的東西常空,如下:
sudo apt-get install build-essential
sudo apt-get install libtool
如果您的電腦上沒有make
和gcc、g++
盖溺, 還是需要手動安裝一下的漓糙。因為Ubuntu自帶了,所以我這里就不再重復安裝烘嘱。
然后是對于一些開源軟件的安裝的方式的使用昆禽,其實無外乎一下三個步驟:
cd targetdir
./configure
sudo make
sudo make install
這樣的話,就差不多了蝇庭。
搭建篇
現(xiàn)在正式開始搭建這個環(huán)境吧醉鳖。總的來說需要安裝的東西還是挺多的哮内。不管怎么樣盗棵,一點點來吧。
安裝虛擬機
我本人手里只有一臺Linux服務器北发,所以肯定是不夠的纹因。于是我選擇了使用虛擬機來創(chuàng)建多個Linux服務器的方式。
- VMware 12 pro 破解版琳拨。
- Ubuntu14.04 LTS
VMware虛擬機一般來說只有30天的試用期瞭恰,對于環(huán)境搭建的學習應該是足夠的了。但是如果想長期使用狱庇,就需要破解一下惊畏,免得整天彈出購買窗口是牢,煩人。關于破解碼的問題陕截,網(wǎng)上一搜就有答案了驳棱。或者在博客下面留下您的郵箱农曲,我私信發(fā)過去也行社搅。
安裝完虛擬機之后裝一下Ubuntu系統(tǒng)就可以啦。我這邊完成安裝后的效果如下乳规。
其實ServerA 和ServerB是從Nginx安裝完成之后直接克隆出來的形葬,這樣省事而且也不容易出錯。
安裝Nginx
重頭戲來了暮的,安裝Nginx之前還需要安裝其他的三個文件笙以,分別是:
pcre: 為了rewrite的重寫,方便對URL做自定義冻辩。
zlib: 為了gzip壓縮的支持猖腕,服務器上一般必備。
OpenSSL: 為了建立更加安全的鏈接恨闪。
下面分別介紹一下它們的安裝步驟:
pcre安裝
cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.gz
tar -zxvf pcre-8.34.tar.gz
cd pcre-8.34
./configure
sudo make
sudo make install
zlib安裝
cd /usr/local/src
wget http://zlib.net/zlib-1.2.10.tar.gz
tar -zxvf zlib-1.2.10.tar.gz
cd zlib-1.2.10
./configure
sudo make
sudo make install
openssl安裝
wget http://www.openssl.org/source/openssl-1.0.1t.tar.gz
tar -zxvf openssl-1.0.1c.tar.gz
./config --prefix=/usr/local --openssldir=/usr/local/openssl
sudo make depend
sudo make
sudo make install
//若要生成libssl.so動態(tài)庫文件 需要如下make
make clean
./config shared --prefix=/usr/local --openssldir=/usr/local/openssl
sudo make depend
sudo make
sudo make install
成功安裝完成這三個之后就可以安裝Nginx了倘感。
安裝Nginx
cd /usr/local/src
wget http://nginx.org/download/nginx-1.10.1.tar.gz
tar -zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1
# 下面這幾行是可選項,其實可以默認不進行指定
./configure --sbin-path=/usr/local/nginx/nginx
--conf-path=/usr/local/nginx/nginx.conf
--pid-path=/usr/local/nginx/nginx.pid
--with-http_ssl_module
--with-pcre=/usr/local/src/pcre-8.39
--with-zlib=/usr/local/src/zlib-1.2.8
--with-openssl=/usr/local/openssl
sudo make
sudo make install
安裝的過程比較緩慢咙咽,一方面是我電腦的問題老玛,另一方面是它真的很慢。钧敞。蜡豹。
不管怎么說,最后成功安裝好了Nginx的話溉苛,/usr/local
下的文件大概就是這個樣子的了镜廉。
安裝Apache
為了模擬現(xiàn)實中的場景,前臺使用Nginx炊昆,后面連著一大群Apache服務器桨吊。我這里還需要在另外的兩臺服務器上安裝一下Apache服務器威根。
sudo apt-get install apache2
這樣就可以了凤巨。然后為了加以區(qū)分,我手動的修改了一下兩臺服務器的默認的index.html
文件的內容洛搀。
比如對于ServerA服務器敢茁,可以作如下修改。
效果呢留美,當然還是在瀏覽器上來驗證最合適了彰檬。參照下圖伸刃。
然后對于ServerB中也做下類似的修改就可以了。
配置
現(xiàn)在萬事俱備了逢倍,只需要修改一下Nginx的相關的配置文件就可以了捧颅。
修改完成之后重啟Nginx服務器即可。
cd /usr/local/nginx/sbin
sudo ./nginx -s reload
出現(xiàn)下圖所示即可较雕。
驗證篇
Nginx
在Nginx的conf配置文件中未打開
proxy_pass http://backup.com
這條注釋之前碉哑,應該僅僅顯示Nginx自己的信息。如下圖
ServerA
ServerA僅僅開啟了一個Apache服務器亮蒋,我本人修改了其默認的顯示文件內容扣典。如下
ServerB
同樣,ServerB也是如此慎玖。但是為了區(qū)分贮尖,也修改了一下頁面現(xiàn)實的內容。
Nginx配置之后
也就是說打開了上面的proxy_pass注釋句趁怔,開啟了Nginx的反向代理功能湿硝。
總結
最后來總結一下。
給我的感覺就是Nginx確實很好用润努,作為一個“大管家”來分配請求任務真的是再合適不過了图柏。今天也就是玩了點皮毛,深層次的東西基本上就沒接觸到任连。
最后看了人家的源碼蚤吹,還是感覺C語言的偉大啊。嘆服K婵佟2米拧!