獨立武俠《武林志2》劇情CG更新,撫琴新玩法上線
Nginx使用
參考視訊:https://www.bilibili.com/video/BV1zJ411w7SV?spm_id_from=333.1007
1.正向代理與反向代理
1.1 正向代理
- 在客戶端(瀏覽器)配置代理伺服器,通過代理伺服器訪問網際網路訪問。
類似於爬蟲中設定的代理IP由客戶端設定。
1.2 反向代理
我們只需要將請求傳送到反向代理伺服器,由反向代理伺服器去選擇目標伺服器獲取資料後,在返回客戶端,此時反向代理伺服器和目標伺服器對外就是一個伺服器,暴露的是代理伺服器的地址,隱藏了真是伺服器的地址。
2.負載均衡
2.1 請求流程
2.2 概述
-
單個伺服器解決不了,我門增加伺服器的數量,然後將請求分發到各個伺服器上,將原先請求集中到單個伺服器上的情況改為將請求分發到多個伺服器的上,將負載
3.動靜分離
-
為了加快網站的解析速度,可以把靜態頁面和動態頁面由不同的伺服器來解析,加快解析速度。將低原來單個伺服器壓力。
4.Nginx中的常用命令
4.1 Linux安裝Nginx
詳情請參考:cnblogs.com/Blogwj123/p/15525270.html
# 通常是使用nginx命令是進入nginx的目錄後使用的 # 1.檢視版本號 ./nginx -v # 2.開始 ./nginx # 3.關閉 ./nginx -s stop # 4.重新載入 ./nginx -s reload # 5.檢視幫助 ./nginx -h
5.Nginx的配置檔案
5.1 配置檔案的組成
位置:
5.1.1 全域性塊
-
從配置檔案的開始到
events
塊之間的內容,主要設定一些影響nginx
伺服器整體執行的配置指令 -
#user nobody; worker_processes 1; # worker_processes值越大,表示支援併發數量越多。 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid;
5.1.2 events塊
events
塊涉及的指令主要影響Nginx
伺服器與使用者網路連線
events {
worker_connections 1024; # 表示最大連線數。
}
5.1.3 Http塊
- 這裡是
Nginx
配置最頻繁的部分,代理、快取和日誌定義的絕大多數功能和第三方模組的配置都在這裡。 - Http模組下包括
http全域性塊
和Server塊
。
1.http全域性塊
2.Server塊
6.反向代理實現
6.1 簡單demo
server {
listen 80;
server_name localhost; # 改為IP地址
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
proxy_pass http:127.0.0.1:8080;
index index.html index.htm;
}
}
6.2 匹配正則
server {
listen 9001;
server_name IP地址;
location ~/edu/ { # 路徑中包含edu轉發到 8081的地址
proxy_pass http://127.0.0.1:8080;
}
location ~/vod/ { # 路徑中包含vod轉發到 8081的地址
proxy_pass http://127.0.0.1:8081;
}
}
6.3 負載均衡
-
實現效果
-
配置
http { upstream mysever{ server 127.0.0.1:8080; # 後面還有weight 代表權重,表示分配到的概率。 server 127.0.0.1:8080; } server { listen 80; server_name 192.168.17.129; location / { proxy_pass http://myserver; } } }
-
nginx提供的分配策略
-
輪訓(預設)
每個請求按照時間順序注意分配到不同的後端伺服器,如果後端
down
掉能自動剔除。 -
weight
weight
代表權重預設值是1,權重越高被分配的客戶端越多;http { upstream mysever{ server 127.0.0.1:8080 weight=1; server 127.0.0.1:8080 weight=3; } server { listen 80; server_name 192.168.17.129; location / { proxy_pass http://myserver; } } }
-
ip_hash
每個請求按訪問IP的
hash
結果分配,這樣每一個訪客固定訪問一個後端伺服器,可以解決session
的問題,例如;http { upstream mysever{ ip_hash; server 127.0.0.1:8080 weight=1; server 127.0.0.1:8080 weight=3; } server { listen 80; server_name 192.168.17.129; location / { proxy_pass http://myserver; } } }
-
fair(第三方)
按後端伺服器的響應時間來分配請求,響應時間短的優先分配。
http { upstream mysever{ server 127.0.0.1:8080 weight=1; server 127.0.0.1:8080 weight=3; fair; } server { listen 80; server_name 192.168.17.129; location / { proxy_pass http://myserver; } } }
-
7.動靜分離實現
7.1 概述
- 目的:提高訪問效率。
-
兩種方式
1.一種是純粹把靜態檔案獨立成單獨的域名,放在獨立的伺服器上釋出,目前主流方式。
2.動態檔案跟靜態檔案混合在一起釋出,通過
nginx
來分開,使用較少。 -
快取
location的快取時間,結合瀏覽器確認使用。具體間概述。
不適用與經常更改的靜態資源。
7.2 配置
server {
listen 9001;
server_name IP地址;
location /www { # data目錄下的資料夾 該路徑一般寫成static
root /data/ ;# root下的資料夾
index index.html index.htm; # 預設的,根據情況修改。
}
location /image/ { #
root /data/;
autoindex on; # 顯示靜態資源列表
}
}
8.高可用
問題:
主從複製 :
- 需求:
- 兩臺
nginx
- 需要
Keepalived
- 需要虛擬
IP
- 兩臺
9.nginx原理
9.1 master-worker
9.2 worker 如何進行工作
9.3 優勢
Nginx
和redis
類似都才用了io多路複用機制;worker數和cpu數量相等比較合適。