一、試驗目的
無論是阿里云,還是騰訊云,無論是華為云,還是天翼云……無論是“哪朵云”,肯定都會有“負載均衡”這個服務,這究竟是個什么東東呢?產品介紹、功能特性等信息,各家的云官網上都講的很仔細啦,在此就不贅述了。
對了,此實驗主要針對技術人員,或者是對技術感興趣的愛好者,對于技術不感興趣的,可以耐著性子湊個熱鬧,也可以就此繞行。
Nginx就可以實現負載均衡,當然,Nginx還可以做Web服務器,郵件服務器,反向代理等等,其中做Web服務器的性能要比Apache Tomcat的好,所以很多企業也越來越喜歡使用Nginx。
因此,一時興起,打算自己搭建一個Nginx環境。

二、試驗準備
1. centos 7.5 云主機(虛擬機),移動云云主機開通流程請參考此帖:https://www.toutiao.com/i6848856439516037635/
2. Nginx 1.18.0 (stable version),可以參考Nginx社區網站,http://nginx.org/en/download.html
三、試驗過程
步驟一:上官網瞧瞧
既然是要搭建Nginx環境,還是建議到社區官網上先看看,雖說英文看起來頭疼,但看得多了也就不疼了,而且官網上的東西,肯定是最權威和一手的。當然,網上搜來的各種帖子也是值得參考的,否則像我這樣的辛苦碼字的技術愛好者們,就沒啥動力發帖啦。
點擊http://nginx.org/ 進入社區官網,一般首頁也發布一些最新版本的信息,在做此實驗的時候最新版本是nginx-1.19.1,不過是mainline版本,最新的stable version版本的是nginx-1.18.0。一般進入官網,想下載安裝包或者源碼,肯定是找download,如果是想查看文檔,肯定是找documentation或者docs等字眼。
說明一下:此實驗是采用yum倉庫方式安裝Nginx的,不是源碼編譯的方式安裝的,網上也有很多源碼編輯安裝方式的帖子,感興趣的可以搜索查看。
閑話少說,點擊鏈接http://nginx.org/en/linux_packages.html ,進入主題,找到CentOS對應的安裝說明,如圖:

Nginx社區官網
步驟二:安裝yum工具包
sudo yum install yum-utils
安裝完成的顯示界面

步驟三:配置Nginx配置文件
按照官網的指導,編輯配置文件,命令如下:
vi /etc/yum.repos.d/nginx.repo
將倉庫配置的代碼拷貝到編輯文本中,保存退出。注意:我修改了名字,直接改成nginx,是為了后續敲命令方便。
[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
繼續按照官網文檔的指導,安裝Nginx,使用的命令如下:
sudo yum install nginx

如果顯示此信息,沒有其他error信息,表示安裝完成。

步驟五:查看Nginx安裝文件目錄,找出關鍵的配置文件
使用命令:rpm -ql nginx

步驟六:啟動Nginx
啟動的命令很簡單,直接在命令界面敲入nginx,同時用ps aux | grep nginx命令來查看nginx啟動進程。
nginx
ps aux | grep nginx

步驟七:驗證Nginx服務是否啟動成功
一種是使用命令來驗證,最常用的就是curl,加上需要驗證的網站地址和端口,因為是本地驗證,所以使用localhost就行,又因為默認是80端口,所以端口默認可以不添加。
curl localhost

另一種是通過瀏覽器來訪問,因為我的實驗環境是搭建在移動云云主機上,使用我本地筆記本電腦訪問云主機上的服務,需要通過公網IP地址來訪問,私網肯定是訪問不到。
通過移動云控制臺->云主機,查看云主機列表,找到云主機對應的公網IP地址:

同時確定該云主機關聯的安全組放通了對應的端口,Nginx配置文件中默認是80端口。

該是見證奇跡的時刻到了,在瀏覽器地址欄敲入http:// 36.133.97.21:80,回車……

不幸的是,頁面出錯了。難道是Nginx沒有啟動嗎?但明明本地curl localhost已經顯示成功了啊,說明問題不在本地啊。難道是安全組沒有放通80端口?可明明是放通了啊。然后就各種的問號開始在大腦里飄了吧,各種懷疑人生了吧,各種……
其實這就是技術愛好者的探索過程,不出問題是不可能的,只有出現了問題,然后又解決了問題,才能品嘗到那種成功的滋味兒,雖說在別人眼里只是小打小鬧,可就好這口!
步驟八:兵來將擋水來土掩,發現問題,解決問題
其實吧,這是移動云平臺的特殊要求,對于部署網站的云主機,80端口是需要ICP備案后才能讓外網訪問,畢竟咱們這只是個實驗環境,實驗目的很純潔,萬一讓不法分子鉆空子,搭建一個不和諧的網站,讓廣大網民隨心所欲的訪問,豈不是壞了大事。
咱們是遵紀守法的良好公民,既然80端口用不了,可以換其它的端口啊,還記得上面提到的那兩個主要配置文件吧,修改端口,走起!!
vi /etc/nginx/conf.d/default.conf
:wq 保存退出。

重新加載Nginx,然后查看監聽端口是否生效。
nginx -s reload
netstat -lntp

確認安全組放通8000端口,然后通過本地筆記本電腦瀏覽器,http:// 36.133.97.21:8000,然后再次訪問,出現以下界面,說明搭建成功。

總結:
到此算是把Nginx環境搭建成功了,萬里長征才走出第一步,Nginx里面還有很多的功能可配置,假如自己開發了一個網站,網站的所有頁面發布到/usr/share/nginx/html此文件夾下,并且把index.html頁面替換成自己網站的首頁,就可以通過瀏覽器訪問了,也算是搭建了自己的第一個web網站吧。
詳細的開發功能,或者命令參數,可直接參考官網,或者搜帖子,總有人走在自己的前面的,也總相信有人會解答問題的。
四、問題匯總
1. Nginx服務不知道是否啟動
可通過curl IP地址:端口號 來驗證,比如curl 127.0.0.1:80,如果驗證返回Nginx歡迎頁面,說明啟動成功。
也可以通過ps aux來查看Nginx運行進程,如果能找到master和worker進程,說明Nginx啟動成功。
2. 瀏覽器訪問老是出現頁面出錯
要么是安全組沒有放通端口號,要么就是因為移動云本身的管制,使用了80端口,解決辦法就是換其它端口號再試試。