1. 程式人生 > 其它 >網路安全筆記3-Linux基礎知識

網路安全筆記3-Linux基礎知識

一、相關指令

1、啟動指令
在/usr/local/nginx/sbin 目錄下執行 ./nginx 
2、關閉指令
在/usr/local/nginx/sbin 目錄下執行 ./nginx -s stop 
3、重新載入指令
在/usr/local/nginx/sbin 目錄下執行 ./nginx -s reload

二、配置檔案

1.全域性塊

從配置檔案開始到 events 塊之間的內容,主要會設定一些影響 nginx 伺服器整體執行的配置指令,主要包括配置執行 Nginx 伺服器的使用者(組)、允許生成的 workerprocess 數,程序 PID 存放路徑、日誌存放路徑和型別以及配置檔案的引入等。
比如:worker_processes 1;
這是 Nginx 伺服器併發處理服務的關鍵配置,worker_processes 值越大,可以支援的併發處理量也越多,但是會受到硬體、軟體等裝置的制約

2.events塊

影響 Nginx 伺服器與使用者的網路連線
比如 worker_connections 1024; 支援的最大連線數為 1024

3.http塊

1、http 全域性塊
http 全域性塊配置的指令包括檔案引入、MIME-TYPE 定義、日誌自定義、連線超時時間、單鏈接請求數上限等。
2、server 塊

三、使用案例

1.反向代理一

實現效果:使用 nginx 反向代理,訪問 www.123.com 直接跳轉到tomcat主頁 127.0.0.1:8080
1、在windows中的hosts中配置域名:47.104.248.219 www.123.com
2、在nginx配置檔案的http塊下的server塊新增以下配置
  server {
        listen       80;
        server_name       47.104.248.219;
        location / {
            proxy_pass http://127.0.0.1:8080;
        }
}

2.反向代理二

實現效果:使用 nginx 反向代理,根據訪問的路徑跳轉到不同埠的服務中nginx 監聽埠為 9001,
訪問 http://127.0.0.1:9001/edu/ 直接跳轉到 127.0.0.1:8081
訪問 http://127.0.0.1:9001/vod/ 直接跳轉到 127.0.0.1:8082
1、在nginx配置檔案的http塊下的server塊新增以下配置
server {
        listen       9001;
        server_name       47.104.248.219;
        location ~ /edu/ {
            proxy_pass http://127.0.0.1:8080;
        }
        location ~ /vod/ {
            proxy_pass http://127.0.0.1:8081;
        }
}

3.負載均衡

實現效果:訪問http://47.104.248.219/edu/a.html,實現負載均衡,平均到8080和8081埠
1、配置檔案
upstream myserver{
	server 47.104.248.219:8080;
	server 47.104.248.219:8081;
}

server {
    listen       80;
    server_name       47.104.248.219;
    location / {
    proxy_pass http://myserver;
    }
}

負載均衡演算法

1、輪詢(預設):按照時間順序逐一分配到不同的伺服器
2、權重(weight):權重預設為1,權重越高分配概率越大
upstream server_pool{
	server 47.104.248.219 weight=10;
	server 47.104.248.220 weight=7;
}
3、ip_hash:每個請求按訪問 ip 的 hash 結果分配,這樣每個訪客固定訪問一個後端伺服器,可以解決 session 的問題
upstream server_pool{
	ip_hash
	server 47.104.248.219:8080;
	server 47.104.248.219:8081;
}
4、fair(第三方):按後端伺服器的響應時間來分配請求,響應時間短的優先分配
upstream server_pool{
	server 47.104.248.219:8080;
	server 47.104.248.219:8081;
	fair;
}

4.動靜分離

配置檔案:
server {
    listen       80;
    server_name       47.104.248.219;
    location /www/ {
    root /data/;	#根目錄
    autoindex on;   #顯示檔案列表
    expires 3d;     #檔案快取時間(通過對比伺服器檔案最後更新時間有沒有變化,沒有變化返回狀態碼304,有變化返回200)
    }
}

四、高可用叢集(keepalived+nginx)

1、安裝keepalived:yum install keepalived -y
檢視是否安裝成功:rpm -q -a keepalived
2、修改keepalived配置檔案
3、啟動keepalived:systemctl start keepalived.service
4、啟動ngxin

keepalived配置檔案

#全域性配置
global_defs {
 notification_email {
 [email protected]
 [email protected]
 [email protected]
 }
 notification_email_from [email protected]
 smtp_server 192.168.17.129
 smtp_connect_timeout 30
 router_id LVS_DEVEL	#ip或者主機名字
}

#檢測指令碼配置
vrrp_script chk_http_port {
 script "/usr/local/src/nginx_check.sh"
 interval 2 #(檢測指令碼執行的間隔,秒)
 weight 2	#如果條件成立,設定當前伺服器權重
}

vrrp_instance VI_1 {
 state BACKUP # 備份伺服器上將 MASTER 改為 BACKUP
 interface ens33 //網絡卡
 virtual_router_id 51 # 主、備機的 virtual_router_id 必須相同
 priority 90 # 主、備機取不同的優先順序,主機值較大,備份機值較小
 advert_int 1	#每隔一秒傳送一個心跳,確定伺服器還活著
 #校驗許可權方式
 authentication {
 auth_type PASS
 auth_pass 1111
 }
 virtual_ipaddress {
 192.168.17.50 // VRRP H 虛擬地址
 }
}

檢測指令碼

#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
 /usr/local/nginx/sbin/nginx
 sleep 2
 if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
 killall keepalived
 fi
fi

五、Nginx原理

1.master-workers機制

1、首先nginx服務在linux系統中會有多個程序,包括一個master程序和一個或多個worker程序
2、當客戶端發請求給nginx時,由master釋出任務,多個worker進行爭搶任務
3、每個worker採用獨立的程序,相互之間不影響,且不會涉及加鎖的問題

2.master-workers機制優點

1、可以使用 nginx –s reload 熱部署,因為多個worker之間互不影響
2、每個worker是獨立程序,不會由於一個worker出現問題導致服務中斷

3.注意事項

1、worker的設定個數和cpu的個數相等最為適宜
2、傳送一個請求會佔用worker的2個(訪問靜態欄位)或者4個(反向代理)連線數
	2個:客戶端訪問worker,worker返回給客戶端
	4個:客戶端訪問worker,worker訪問動態服務,動態服務返回給worker,worker返回給客戶端
3、一個master,4個worker,每個worker支援的最大連線數是1024,支援的最大併發數是多少
	訪問靜態資源:4x1024/4
	反向代理:4x1024/4