1. 程式人生 > >Linux基本服務Nginx——day03

Linux基本服務Nginx——day03

建立軟連結   ln -s 連結地址  快捷方式   注意:連結地址要用絕對路徑         刪除連結的時候不能用rm -rf 會把原檔案的所有資料都刪除了!

  不管是連結地址是檔案還是目錄,刪除軟連結就用:      rm -f ……

對稱演算法有:AES、DES,主要應用在單機資料加密。 非對稱演算法有:RSA、DSA,主要應用在網路資料加密。 資訊摘要:MD5、sha256,主要應用在資料完整性校驗、資料秒傳等。

對文加進行雜湊運算:    md5sum 檔案    echo '字串'  |  md5sum   同樣的檔案內容計算出來的雜湊值一定一樣(和檔名無關,只於內容相關)

  雜湊取餘演算法:     $(echo 'IP地址' | md5sum) % 伺服器個數      這樣可以根據web的ip地址進行分配,同樣的ip取完雜湊值後進行判斷

port資訊

ssh 22
ftp 20,21
dns 53
dhcp 67
http 80
https 443
mysql 3306
php 9000

web叢集

   多個伺服器,一起提供web服務,其中一個排程,多個作為網站伺服器,一般排程伺服器是用nginx,網站伺服器apache和nginx都可以

   排程伺服器:

upstream 叢集名         # 定義叢集,然後在server虛擬主機中排程
{
   server  ip  配置屬性;    # 叢集配置,讓什麼ip加入叢集中
   ip_hash;            # 根據雜湊取餘演算法進行分配,一條配置就完成了雜湊取餘演算法調配的所有操作
}
server{
     location{
       proxy_pass  http://叢集名;    # 呼叫上面定義的叢集
       }
}

   配置屬性:(多個配置用空格分割)        weight  設定伺服器權重值,預設值為1,按照所佔百分比,判斷出現的次數,權重大的先執行        max_fails  設定最大失敗次數,也就是,判斷連線超過多少次算失敗,達到這個失敗次數後判定這個伺服器不可用        fail_timeout  設定失敗超時時間,單位為秒,判斷伺服器不可用後隔多少時間重新嘗試連線        down  標記伺服器已關機,不參與叢集排程

  注意:      1. 對IP進行雜湊取餘,只是針對ip的第一個欄位進行雜湊計算取餘。      2. 配置ip_hash對導致權重沒有實際作用

http{

    upstream webs{
      ip_hash;
      server 192.168.2.100:80 weight=1 max_fails=1 fail_timeout=120;    
      server 192.168.2.200:80 weight=2 max_fails=2 fail_timeout=50;
      server 192.168.2.150 down;
    }

    server {
        listen  80;
        server_name  www.lyu.com;
        location / {
            proxy_pass  http://webs;
            index  index.html index.htm;
        }

}

  建立一個叢集叫webs,裡面有三個web伺服器,其中   IP為192.168.2.100的伺服器,他的權重是1,也是每三次訪問中,第三次是排程到這個伺服器,然後如果有一次連線失敗就判定伺服器不可用,每隔120s判定一次;   IP為192.168.2.200的伺服器,他的權重是2,也是每三次訪問中,前兩次是排程到這個伺服器,然後如果有兩次連線失敗就判定伺服器不可用,每隔50s判定一次;   IP為192.168.2.200的伺服器,他不使用。   不過因為配置中有ip_hash 會根據ip的前三位進行取餘排程,所以,所有的100段的所有ip主機都是到一個伺服器,這會使之前的權重沒有作用。

TCP/IP代理伺服器

   ssh -p 埠 IP  以指定的埠進行訪問

   編譯安裝必須要使用--with-stream的模組,但是隻有nginx的1.9版本後才有這個功能

   要注意在做代理的時候監聽埠不能和原先服務一樣的埠,因為這樣原來的服務佔用埠,導致服務起不來    客戶端在訪問的時候要標明段口號

   基本格式:(在http外,進行修改,因為這不是web網頁)

stream {
   upstream 叢集名 {
      server IP:段口號;            //後端SSH伺服器的IP和埠
     }
    server {
       listen 監聽的段口號;                        //Nginx監聽的埠
       proxy_pass 叢集名;
      }
}

  針對資料庫伺服器的代理:     資料庫的代理服務和普通的其他服務不一樣,預設mysql是不能以root身份遠端控制的,所以必須賦權建立一個使用者,用於遠端     在資料庫介面中:  grant all on *.*  使用者名稱@'%'  identified by '密碼'     檢查是否配置成功: mysql -h 192.168.4.55 -P12345 -uyzy -p

常見問題以及解決方案:  

  為提高伺服器的併發良,在原配置檔案中修改:

     worker_processes  2;                    //與CPU核心數量一致
     events{
        worker_connections 65535;              //每個worker最大併發連線數
        use epoll;                    //使用較優演算法
      }

    調整核心資訊:         檢視:ulimit -a         其中的 open files 關乎併發量,他有軟限制和硬限制;         軟限制每個使用者都可以修改,硬限制只能是root才能修改;         軟限制是實際限制併發的數值,硬限制是限制軟限制的大小的值。           ulimit -Hn 100000                //設定硬限制(臨時規則)           ulimit -Sn 100000                //設定軟限制(臨時規則)

    永久配置,修改配置檔案:/etc/security/limits.conf,去掉#註釋符號,進行配置,其中這四列分別代表:       對什麼生效 ,格式(soft軟,hard硬 ),需要限制的專案,限制的值

#<domain>      <type>   <item>         <value>
#
#*             soft      nofile          0
#*             hard      nofile          10000

414報錯    出現414標示是客戶端的輸入的地址超過了伺服器設定的快取大小,修改方法就是,修改nginx裡的記憶體佔用即可

http {
  include       mime.types;
  default_type  application/octet-stream;
  client_header_buffer_size 1k;        # 修改預設開啟的快取大小
  large_client_header_buffers 4 4k;        # 預設快取不夠時,開啟

     ……
}

設定快取保留時間:

   在sever裡面,如果訪問了圖片或者視訊,就設定快取,,所以正則匹配表達,以jpg等結尾的檔案進行快取

server {
   location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
      expires  30d;            //定義客戶端快取時間為30天
   }
}

其中的 ~* 代表正則匹配,並且不區分大小寫

對報錯的頁面,進行美化修改:

錯誤編號 含義
200 正常
301 永久重定向
302 臨時重定向
304 重定向到本機,指的快取資訊
401 使用者名稱和密碼錯誤
403 禁止訪問,也就是IP被拒絕訪問了
404 檔案不存在
414 請求的URI位址列太長
500 伺服器內部錯誤
502 叢集中,排程器無法和後臺伺服器連結,也就是叢集有問題
server{
    error_page  錯誤序號1  錯誤序號2 ……  /檔案路徑和目錄
}

   其中這個 / 指的是網頁根目錄,也就是location中的root所指目錄(root中的相對路徑是nginx安裝配置的時候配置的目錄下的路徑)