一、試驗(yàn)?zāi)康?/strong>
無(wú)論是阿里云,還是騰訊云,無(wú)論是華為云,還是天翼云……無(wú)論是“哪朵云”,肯定都會(huì)有“負(fù)載均衡”這個(gè)服務(wù),這究竟是個(gè)什么東東呢?產(chǎn)品介紹、功能特性等信息,各家的云官網(wǎng)上都講的很仔細(xì)啦,在此就不贅述了。
對(duì)了,此實(shí)驗(yàn)主要針對(duì)技術(shù)人員,或者是對(duì)技術(shù)感興趣的愛(ài)好者,對(duì)于技術(shù)不感興趣的,可以耐著性子湊個(gè)熱鬧,也可以就此繞行。
Nginx就可以實(shí)現(xiàn)負(fù)載均衡,當(dāng)然,Nginx還可以做Web服務(wù)器,郵件服務(wù)器,反向代理等等,其中做Web服務(wù)器的性能要比Apache Tomcat的好,所以很多企業(yè)也越來(lái)越喜歡使用Nginx。
因此,一時(shí)興起,打算自己搭建一個(gè)Nginx環(huán)境。
二、試驗(yàn)準(zhǔn)備
1. centos 7.5 云主機(jī)(虛擬機(jī)),移動(dòng)云云主機(jī)開(kāi)通流程請(qǐng)參考此帖:https://www.toutiao.com/i6848856439516037635/
2. Nginx 1.18.0 (stable version),可以參考Nginx社區(qū)網(wǎng)站,http://nginx.org/en/download.html
三、試驗(yàn)過(guò)程
步驟一:上官網(wǎng)瞧瞧
既然是要搭建Nginx環(huán)境,還是建議到社區(qū)官網(wǎng)上先看看,雖說(shuō)英文看起來(lái)頭疼,但看得多了也就不疼了,而且官網(wǎng)上的東西,肯定是最權(quán)威和一手的。當(dāng)然,網(wǎng)上搜來(lái)的各種帖子也是值得參考的,否則像我這樣的辛苦碼字的技術(shù)愛(ài)好者們,就沒(méi)啥動(dòng)力發(fā)帖啦。
點(diǎn)擊http://nginx.org/ 進(jìn)入社區(qū)官網(wǎng),一般首頁(yè)也發(fā)布一些最新版本的信息,在做此實(shí)驗(yàn)的時(shí)候最新版本是nginx-1.19.1,不過(guò)是mainline版本,最新的stable version版本的是nginx-1.18.0。一般進(jìn)入官網(wǎng),想下載安裝包或者源碼,肯定是找download,如果是想查看文檔,肯定是找documentation或者docs等字眼。
說(shuō)明一下:此實(shí)驗(yàn)是采用yum倉(cāng)庫(kù)方式安裝Nginx的,不是源碼編譯的方式安裝的,網(wǎng)上也有很多源碼編輯安裝方式的帖子,感興趣的可以搜索查看。
閑話少說(shuō),點(diǎn)擊鏈接http://nginx.org/en/linux_packages.html ,進(jìn)入主題,找到CentOS對(duì)應(yīng)的安裝說(shuō)明,如圖:
Nginx社區(qū)官網(wǎng)
步驟二:安裝yum工具包
sudo yum install yum-utils
安裝完成的顯示界面
步驟三:配置Nginx配置文件
按照官網(wǎng)的指導(dǎo),編輯配置文件,命令如下:
vi /etc/yum.repos.d/nginx.repo
將倉(cāng)庫(kù)配置的代碼拷貝到編輯文本中,保存退出。注意:我修改了名字,直接改成nginx,是為了后續(xù)敲命令方便。
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
命令界面如下:
步驟四:用yum安裝Nginx
繼續(xù)按照官網(wǎng)文檔的指導(dǎo),安裝Nginx,使用的命令如下:
sudo yum install nginx
如果顯示此信息,沒(méi)有其他error信息,表示安裝完成。
步驟五:查看Nginx安裝文件目錄,找出關(guān)鍵的配置文件
使用命令:rpm -ql nginx
步驟六:?jiǎn)?dòng)Nginx
啟動(dòng)的命令很簡(jiǎn)單,直接在命令界面敲入nginx,同時(shí)用ps aux | grep nginx命令來(lái)查看nginx啟動(dòng)進(jìn)程。
nginx
ps aux | grep nginx
步驟七:驗(yàn)證Nginx服務(wù)是否啟動(dòng)成功
一種是使用命令來(lái)驗(yàn)證,最常用的就是curl,加上需要驗(yàn)證的網(wǎng)站地址和端口,因?yàn)槭潜镜仳?yàn)證,所以使用localhost就行,又因?yàn)槟J(rèn)是80端口,所以端口默認(rèn)可以不添加。
curl localhost
另一種是通過(guò)瀏覽器來(lái)訪問(wèn),因?yàn)槲业膶?shí)驗(yàn)環(huán)境是搭建在移動(dòng)云云主機(jī)上,使用我本地筆記本電腦訪問(wèn)云主機(jī)上的服務(wù),需要通過(guò)公網(wǎng)IP地址來(lái)訪問(wèn),私網(wǎng)肯定是訪問(wèn)不到。
通過(guò)移動(dòng)云控制臺(tái)->云主機(jī),查看云主機(jī)列表,找到云主機(jī)對(duì)應(yīng)的公網(wǎng)IP地址:
同時(shí)確定該云主機(jī)關(guān)聯(lián)的安全組放通了對(duì)應(yīng)的端口,Nginx配置文件中默認(rèn)是80端口。
該是見(jiàn)證奇跡的時(shí)刻到了,在瀏覽器地址欄敲入http:// 36.133.97.21:80,回車(chē)……
不幸的是,頁(yè)面出錯(cuò)了。難道是Nginx沒(méi)有啟動(dòng)嗎?但明明本地curl localhost已經(jīng)顯示成功了啊,說(shuō)明問(wèn)題不在本地啊。難道是安全組沒(méi)有放通80端口?可明明是放通了啊。然后就各種的問(wèn)號(hào)開(kāi)始在大腦里飄了吧,各種懷疑人生了吧,各種……
其實(shí)這就是技術(shù)愛(ài)好者的探索過(guò)程,不出問(wèn)題是不可能的,只有出現(xiàn)了問(wèn)題,然后又解決了問(wèn)題,才能品嘗到那種成功的滋味兒,雖說(shuō)在別人眼里只是小打小鬧,可就好這口!
步驟八:兵來(lái)將擋水來(lái)土掩,發(fā)現(xiàn)問(wèn)題,解決問(wèn)題
其實(shí)吧,這是移動(dòng)云平臺(tái)的特殊要求,對(duì)于部署網(wǎng)站的云主機(jī),80端口是需要ICP備案后才能讓外網(wǎng)訪問(wèn),畢竟咱們這只是個(gè)實(shí)驗(yàn)環(huán)境,實(shí)驗(yàn)?zāi)康暮芗儩崳f(wàn)一讓不法分子鉆空子,搭建一個(gè)不和諧的網(wǎng)站,讓廣大網(wǎng)民隨心所欲的訪問(wèn),豈不是壞了大事。
咱們是遵紀(jì)守法的良好公民,既然80端口用不了,可以換其它的端口啊,還記得上面提到的那兩個(gè)主要配置文件吧,修改端口,走起!!
vi /etc/nginx/conf.d/default.conf
:wq 保存退出。
重新加載Nginx,然后查看監(jiān)聽(tīng)端口是否生效。
nginx -s reload
netstat -lntp
確認(rèn)安全組放通8000端口,然后通過(guò)本地筆記本電腦瀏覽器,http:// 36.133.97.21:8000,然后再次訪問(wèn),出現(xiàn)以下界面,說(shuō)明搭建成功。
總結(jié):
到此算是把Nginx環(huán)境搭建成功了,萬(wàn)里長(zhǎng)征才走出第一步,Nginx里面還有很多的功能可配置,假如自己開(kāi)發(fā)了一個(gè)網(wǎng)站,網(wǎng)站的所有頁(yè)面發(fā)布到/usr/share/nginx/html此文件夾下,并且把index.html頁(yè)面替換成自己網(wǎng)站的首頁(yè),就可以通過(guò)瀏覽器訪問(wèn)了,也算是搭建了自己的第一個(gè)web網(wǎng)站吧。
詳細(xì)的開(kāi)發(fā)功能,或者命令參數(shù),可直接參考官網(wǎng),或者搜帖子,總有人走在自己的前面的,也總相信有人會(huì)解答問(wèn)題的。
四、問(wèn)題匯總
1. Nginx服務(wù)不知道是否啟動(dòng)
可通過(guò)curl IP地址:端口號(hào) 來(lái)驗(yàn)證,比如curl 127.0.0.1:80,如果驗(yàn)證返回Nginx歡迎頁(yè)面,說(shuō)明啟動(dòng)成功。
也可以通過(guò)ps aux來(lái)查看Nginx運(yùn)行進(jìn)程,如果能找到master和worker進(jìn)程,說(shuō)明Nginx啟動(dòng)成功。
2. 瀏覽器訪問(wèn)老是出現(xiàn)頁(yè)面出錯(cuò)
要么是安全組沒(méi)有放通端口號(hào),要么就是因?yàn)橐苿?dòng)云本身的管制,使用了80端口,解決辦法就是換其它端口號(hào)再試試。