1. 程式人生 > >Day06_nginx及反向代理、共享存儲nfs

Day06_nginx及反向代理、共享存儲nfs

是否 bin 配置文件 日誌格式 force 默認 day 標識 set

一.nginx服務

  1. nginx服務
  2. 裝nginx前線裝epel-release:yum install epel-release -y(基於這個源安裝nginx)
  3. 安裝nginx:yum install nginx -y
  4. 修改配置文件: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
  5. 編輯index.html文件,並重啟 systemctl [re]start nginx
    • systemctl status nginx 為檢查服務狀態
    • systemctl disable nginx 為開機不啟動
    • systemctl enable nginx 為開機啟動
    • systemctl reload nginx 為重新加載,讀取配置文件
  6. 關閉防火墻:systemctl stop firewalld(或者iptables -F 清理防火墻規則)
    • 因自己實驗多次仍會出現權限問題,多方查閱,有以下處理方法
    • SELinux設置為開啟狀態(enabled)的原因
      首先查看本機SELinux的開啟狀態,如果SELinux status參數為enabled即為開啟狀態
      /usr/sbin/ sestatus -v
      或者使用getenforce命令檢查
      • 找到原因了,如何關閉 SELinux 呢
        1. 臨時關閉(不用重啟)
          setenforce 0
        2. 修改配置文件 /etc/ selinux/config,將SELINUX=enforcing改為SELINUX=disabled
          vi /etc/ selinux/config
          註意:修改配置文件需要重啟系統 reboot,之後再關閉防火墻即可。
  7. 即可訪問
  8. nginx.conf文件
    1. location其中的"/"代表自定義的根目錄,其中的{}可自己定義,例如 root /var/www/html;(註意以分號結尾
      )
    2. log_format 為日誌格式

二.nginx反向代理

  1. 正向代理和反向代理:
    • 代理:A訪問B,A把自己的請求讓C代理,C去訪問B
    • 正向代理:A明確地知道自己的代理C的存在,A明確地指定自己的代理地址是C,讓C去訪問B,拿到結果再給A,通常用來FQ
    • 反向代理:用戶請求發給nginx後,由nginx負載給代理的機器,拿到結果,再由nginx返回給客戶端(如此,nginx便把一堆自己代理的機器隱藏到後端,外界訪問的就是nginx)
  2. 負載均衡
    • round-robin:輪詢,依次給代理服務器;
    • least-connected:最小鏈接數;
    • ip-hash:根據IP地址(與會話保持有關);
  3. 反向代理配置
    引用:nginx反向代理
    1. 負載均衡設置
      • http中的upstream :定義nginx需要管理的一組機器,組名為myapp1,server為代理服務器
      • location /中 修改為:proxy_pass http://myapp1;
    2. 最小連接數設置
      • 只需在server上一行 增加least_conn; 即可
    3. ip-hash設置
      • 只需在server上一行 增加ip_hash; 即可
    4. 權重設置
      • 需在server此行 增加weight=number 即可(number為權重為幾次)

三.共享存儲nfs

  1. 安裝
    1. 需先安裝rpc協議軟件包及nfs軟件包:yum install rpcbind nfs-utils -y
  2. 配置
    1. 配置文件為 /etc/exports (這個文件是NFS的主要配置文件,不過系統並沒有默認值,所以這個文件不一定會存在,可能要使用vim手動建立,然後在文件裏面寫入配置內容)
    2. /etc/exports文件內容格式:
      • <輸出目錄> [客戶端1 選項(訪問權限,用戶映射,其他)] [客戶端2 選項(訪問權限,用戶映射,其他)]
      • 輸出目錄:輸出目錄是指NFS系統中需要共享給客戶機使用的目錄;
      • 客戶端:客戶端是指網絡中可以訪問這個NFS輸出目錄的計算機
      • 訪問權限選項
        • 設置輸出目錄只讀:ro
        • 設置輸出目錄讀寫:rw
      • 具體請見 第19單元NFS服務
        引用:nfs服務
    3. 修改配置
      • [root@MiWiFi-R3-srv nginx]# cat /etc/exports
      • /share 192.168.31.0/24(rw,sync,fsid=0)
        • 192.168.31.0/24:指定子網中的所有主機
        • sync:將數據同步寫入內存緩沖區與磁盤中,效率低,但可以保證數據的一致性
    4. 文件存儲和塊存儲及對象存儲
      • 塊存儲: 硬盤
      • 文件存儲: 直接可以創建 增刪改查
      • 對象存儲: 創建 更改需要加載到本地 再上傳
    5. 開權限(nfs開啟了w權限還不行,others還需要對/share目錄有w權限)
      • chmod -R o+w /share
    6. 開機啟動
      1. systemctl enable nfs-server.service
      2. systemctl enable rpcbind.service
    7. 啟動服務
      1. systemctl start rpcbind.service(必須先啟動)
      2. systemctl start nfs-server.service
    8. 確認nfs服務器啟動成功
      1. rpcinfo
      2. exportfs
      3. showmount -e #默認查看自己共享的服務,前提是要DNS能解析自己,不然容易報錯
      4. showmount -a #顯示已經與客戶端連接上的目錄信息
  3. 客戶端配置
    1. yum install rpcbind nfs-utils -y:安裝軟件
    2. systemctl enable rpcbind.service && systemctl start rpcbind.service:開機啟動
    3. showmount -e NFS服務器IP #檢查 NFS 服務器端是否有目錄共享
    4. mount -t nfs NFS服務器IP:/share /var/www/html/ :掛載
  4. 測試
    • 基於nginx的負載均衡配置,打開後端被代理服務的access.log日誌,tail -f access.log來觀察訪問,訪問LB刷新頁面發現內容保持一致,但是每臺被代理的機器的access.log日誌都有新的內容進來

Day06_nginx及反向代理、共享存儲nfs