Day06_nginx及反向代理、共享存儲nfs
阿新 • • 發佈:2017-11-18
是否 bin 配置文件 日誌格式 force 默認 day 標識 set
一.nginx服務
- nginx服務
- 裝nginx前線裝epel-release:yum install epel-release -y(基於這個源安裝nginx)
- 安裝nginx:yum install nginx -y
- 修改配置文件:vim /etc/nginx/nginx.conf
- 其中access_log 為運行日誌
- server 下的root 為網站下的根目錄 例如:/usr/share/nginx/html
- cd到root下 vim打開 index.html文件,用戶訪問時會下載此文件
- url 統一資源定位符:例如 http://192.168.1.1:80 定位到軟件
- uri 統一資源標識符:例如 http://192.168.1.1:80/a/b/c.txt 定位到文件 文件路徑為:/usr/share/nginx/html/a/b/c.txt
- 其中access_log 為運行日誌
- 編輯index.html文件,並重啟 systemctl [re]start nginx
- systemctl status nginx 為檢查服務狀態
- systemctl disable nginx 為開機不啟動
- systemctl enable nginx 為開機啟動
- systemctl reload nginx 為重新加載,讀取配置文件
- systemctl status nginx 為檢查服務狀態
- 關閉防火墻:systemctl stop firewalld(或者iptables -F 清理防火墻規則)
- 因自己實驗多次仍會出現權限問題,多方查閱,有以下處理方法
- SELinux設置為開啟狀態(enabled)的原因
首先查看本機SELinux的開啟狀態,如果SELinux status參數為enabled即為開啟狀態
或者使用getenforce命令檢查- 找到原因了,如何關閉 SELinux 呢
- 臨時關閉(不用重啟)
setenforce 0
- 修改配置文件 /etc/ selinux/config,將SELINUX=enforcing改為SELINUX=disabled
vi /etc/ selinux/config
註意:修改配置文件需要重啟系統 reboot,之後再關閉防火墻即可。
- 臨時關閉(不用重啟)
- 找到原因了,如何關閉 SELinux 呢
- 因自己實驗多次仍會出現權限問題,多方查閱,有以下處理方法
- 即可訪問
- nginx.conf文件
- location其中的"/"代表自定義的根目錄,其中的{}可自己定義,例如 root /var/www/html;(註意以分號結尾
- log_format 為日誌格式
- location其中的"/"代表自定義的根目錄,其中的{}可自己定義,例如 root /var/www/html;(註意以分號結尾
二.nginx反向代理
- 正向代理和反向代理:
- 代理:A訪問B,A把自己的請求讓C代理,C去訪問B
- 正向代理:A明確地知道自己的代理C的存在,A明確地指定自己的代理地址是C,讓C去訪問B,拿到結果再給A,通常用來FQ
- 反向代理:用戶請求發給nginx後,由nginx負載給代理的機器,拿到結果,再由nginx返回給客戶端(如此,nginx便把一堆自己代理的機器隱藏到後端,外界訪問的就是nginx)
- 代理:A訪問B,A把自己的請求讓C代理,C去訪問B
- 負載均衡
- round-robin:輪詢,依次給代理服務器;
- least-connected:最小鏈接數;
- ip-hash:根據IP地址(與會話保持有關);
- round-robin:輪詢,依次給代理服務器;
- 反向代理配置
引用:nginx反向代理- 負載均衡設置
- http中的upstream :定義nginx需要管理的一組機器,組名為myapp1,server為代理服務器
- location /中 修改為:proxy_pass http://myapp1;
- http中的upstream :定義nginx需要管理的一組機器,組名為myapp1,server為代理服務器
- 最小連接數設置
- 只需在server上一行 增加least_conn; 即可
- 只需在server上一行 增加least_conn; 即可
- ip-hash設置
- 只需在server上一行 增加ip_hash; 即可
- 只需在server上一行 增加ip_hash; 即可
- 權重設置
- 需在server此行 增加weight=number 即可(number為權重為幾次)
- 負載均衡設置
三.共享存儲nfs
- 安裝
- 需先安裝rpc協議軟件包及nfs軟件包:yum install rpcbind nfs-utils -y
- 需先安裝rpc協議軟件包及nfs軟件包:yum install rpcbind nfs-utils -y
- 配置
- 配置文件為 /etc/exports (這個文件是NFS的主要配置文件,不過系統並沒有默認值,所以這個文件不一定會存在,可能要使用vim手動建立,然後在文件裏面寫入配置內容)
- /etc/exports文件內容格式:
- <輸出目錄> [客戶端1 選項(訪問權限,用戶映射,其他)] [客戶端2 選項(訪問權限,用戶映射,其他)]
- 輸出目錄:輸出目錄是指NFS系統中需要共享給客戶機使用的目錄;
- 客戶端:客戶端是指網絡中可以訪問這個NFS輸出目錄的計算機
- 訪問權限選項
- 設置輸出目錄只讀:ro
- 設置輸出目錄讀寫:rw
- 設置輸出目錄只讀:ro
- 具體請見 第19單元NFS服務
引用:nfs服務
- <輸出目錄> [客戶端1 選項(訪問權限,用戶映射,其他)] [客戶端2 選項(訪問權限,用戶映射,其他)]
- 修改配置
- [root@MiWiFi-R3-srv nginx]# cat /etc/exports
- /share 192.168.31.0/24(rw,sync,fsid=0)
- 192.168.31.0/24:指定子網中的所有主機
- sync:將數據同步寫入內存緩沖區與磁盤中,效率低,但可以保證數據的一致性
- 192.168.31.0/24:指定子網中的所有主機
- [root@MiWiFi-R3-srv nginx]# cat /etc/exports
- 文件存儲和塊存儲及對象存儲
- 塊存儲: 硬盤
- 文件存儲: 直接可以創建 增刪改查
- 對象存儲: 創建 更改需要加載到本地 再上傳
- 塊存儲: 硬盤
- 開權限(nfs開啟了w權限還不行,others還需要對/share目錄有w權限)
- chmod -R o+w /share
- chmod -R o+w /share
- 開機啟動
- systemctl enable nfs-server.service
- systemctl enable rpcbind.service
- systemctl enable nfs-server.service
- 啟動服務
- systemctl start rpcbind.service(必須先啟動)
- systemctl start nfs-server.service
- systemctl start rpcbind.service(必須先啟動)
- 確認nfs服務器啟動成功
- rpcinfo
- exportfs
- showmount -e #默認查看自己共享的服務,前提是要DNS能解析自己,不然容易報錯
- showmount -a #顯示已經與客戶端連接上的目錄信息
- rpcinfo
- 配置文件為 /etc/exports (這個文件是NFS的主要配置文件,不過系統並沒有默認值,所以這個文件不一定會存在,可能要使用vim手動建立,然後在文件裏面寫入配置內容)
- 客戶端配置
- yum install rpcbind nfs-utils -y:安裝軟件
- systemctl enable rpcbind.service && systemctl start rpcbind.service:開機啟動
- showmount -e NFS服務器IP #檢查 NFS 服務器端是否有目錄共享
- mount -t nfs NFS服務器IP:/share /var/www/html/ :掛載
- yum install rpcbind nfs-utils -y:安裝軟件
- 測試
- 基於nginx的負載均衡配置,打開後端被代理服務的access.log日誌,tail -f access.log來觀察訪問,訪問LB刷新頁面發現內容保持一致,但是每臺被代理的機器的access.log日誌都有新的內容進來
Day06_nginx及反向代理、共享存儲nfs