一:nginx服務
二進制安裝nginx包
作為web服務修改配置文件
在安裝完成后,首先需要修改配置文件
vim /etc/nginx/nginx.conf
我們修改的是默認目錄下的index.html文件
vim /usr/share/nginx/html/index.html
開啟nginx服務,讓配置文件生效。
systemctl start nginx
在瀏覽器中根據本機ip演示效果。
注:為了能讓nginx能夠開機即啟動,我們可執行:
systemctl enable nginx
二:nfs服務
二進制安裝nfs(四台機器上均需安裝)
在根下新建一個/share目錄,將1234567890寫入該目錄下的2.txt文件中。
安裝完畢后在服務端修改nfs配置文件,目的為了確定哪個文件夾共享,允許哪個ip的客戶端能夠訪問,及用戶映射關系等,然后啟動rpc(必須先啟動,因為他基於通信)和nfs。
在此配置文件的輸入格式為:
<輸出目錄> [客戶端1] 選項(訪問權限,用戶映射,其他)例如:/share 192.168.16.0/24(rw,sync,fsid=0)
然后查找另外三台機器的ip並記錄(這里只展示兩個)。
我們在另外三台web上啟動和查詢共享存儲服務端的文件在什么目錄下
我們需要先到服務器中修改權限
然后再回到web機上進行修改文件,並到其他兩台查看是否有變化。
另外一台也是一樣的。
如上圖可以看到,在共享存儲掛載在三台web的網站根目錄下后,在任意一台web上修改的結果,其余兩台都可以看到。
三:nginx反向代理三台web
首先類似於作業一,修改這三台服務器的index.html文件。注意:這里的文件可以自己設定路徑也可使用默認的。具體參照作業一)(其他兩台同理)
在代理服務端修改配置文件
vim /usr/share/nginx/html/index.html
1.實現基於輪詢的方式調度三台web的修改。
注:這里的ip均為這三台web服務器的ip。
完成后驗證的結果為:
這三種結果來回更替,這就是所謂的輪詢!
2.實現基於權重的方式調度三台web的修改。
location下的命令不改變,將http下的命令略作修改
在這種方式下,連續的刷新,五次會有三次出現web1.
3.實現基於hash的方式調用三台web的修改
這種方式下,連續的刷新並不會改變所出現的內容,這就是hash,因為短時間連續的訪問下,始終訪問這台服務器會將數據放在內存中,有會話保持的作用,有助於提高訪問效率。
四:nginx反向代理+三台web+nfs共享存儲實現集群配置
關系如圖:
具體操作:我們根據作業三的反向代理,在此基礎上,我們可以把代理服務器看成nfs的共享存儲設備,依然是根據作業二中(安裝nfs服務器,建立共享目錄;然后新建nfs的配置文件;完成后在其他三台服務器中根據ip查找共享存儲服務器(即代理服務器)的共享目錄並進行掛載;最后設置代理服務器的目錄訪問權限,這樣我們就可以在其他三台服務器中對share目錄下的文件進行增改刪除的訪問。)
然后由於我們本身就是基於作業三的前提下做的,即反向代理也已經完成了。
我們的關鍵問題就是如何將這兩個服務所實踐的功能給鏈接起來。
先來看具體的訪問流程:根據代理服務器的ip並加上你想訪問的share文件名在瀏覽器進行查詢,代理服務器根據nginx服務進行選擇三台web服務器其中的一台進行處理,需要注意的是,由上面我們知道到達web服務器的命令格式形式是http//192.168.0.0/文件名,我們依然是基於web服務器的nginx服務將此命令處理后,根據nfs服務來訪問共享存儲設備。我們知道實現nfs共享功能的一個關鍵因素是將存儲設備的share文件分別掛載到了這三台web服務器的目錄下,所以這里我們只需要將web服務的nginx配置文件下的location改成:{ root /777}也就是設置nfs服務時你所掛載的目錄。這樣就實現了作業二與作業三的連通。
五:源碼安裝nginx,並按照作業一描述的那樣去測試使用
1.在官網下載源碼的nginx,並將他從物理機拖到虛擬機下的root目錄下。
下載地址為:
2.在安裝之前我們需要將之前安裝的nginx卸載。
yum remove nginx -y
3.安裝nginx的所需要安裝包:
pcre: 用來作地址重寫的功能。
zlib:nginx 的gzip模塊,傳輸數據打包,省流量(但消耗資源)。
openssl:提供ssl加密協議。
4.解壓所下載的nginx壓縮包。(注意解壓前需安裝gcc編譯工具)
tar xvf /root/nginx-1.10.3.tar.gz
5.然后cd到解壓的目錄文件下,執行配置安裝選項,確定安裝位置和其他配置。
./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
6.然后編譯安裝。
make && make install
7.設置開機啟動(systemctl enable nginx)