nginx :正向代理,反向代理,負載均衡,動靜分離
什么是nginx
Nginx (engine x) 是一個高性能的HTTP和反向代理web服務器,提供了IMAP/POP3/SMTP服務
POP3是Post Office Protocol 3的簡稱,即郵局協議的第3個版本,它規定怎樣將個人計算機連接到Internet的郵件服務器和下載電子郵件的電子協議,它是因特網電子郵件的第一個離線協議標準,POP3允許客戶從服務器上把郵件存盤到本地主機(即自己的計算機)上,同時洗掉保存在郵件服務器上的郵件,而POP3服務器則是遵循POP3協議的接收郵件服務器,用來接收電子郵件的,
IMAP全稱是Internet Mail Access Protocol(互動式郵件存取協議),與POP3一樣都是一種郵件獲取協議,它的主要作用是郵件客戶端(例如iPhone、Foxmail)可以通過這種協議從郵件服務器上獲取郵件的資訊,下載郵件等,IMAP的功能是各處同步,即在網頁、客戶端、手持設備上對郵箱的操作,均多向同步,如果一封在網頁中打開過的新郵件,在iPad上登錄郵箱后,該郵件也是已讀狀態;一封郵件在iPhone上被徹底洗掉,在Foxmail登錄郵箱后,將找不到該郵件,
SMTP 的全稱是“Simple Mail Transfer Protocol”,即簡單郵件傳輸協議,它是一組用于從源地址到目的地址傳輸郵件的規范,通過它來控制郵件的中轉方式,SMTP 協議屬于 TCP/IP 協議簇,它幫助每臺計算機在發送或中轉信件時找到下一個目的地,SMTP 服務器就是遵循 SMTP 協議的發送郵件服務器,
nginx特點:占用記憶體少,并發能力強
Nginx 安裝非常簡單、組態檔非常簡潔(還能夠支持perl語法)、Bug非常少,Nginx 啟動特別容易,并且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啟動,能夠不間斷服務的情況下進行軟體版本的升級
Nginx代碼完全用C語言從頭寫成,官方資料測驗表明能夠支持高達 50,000 個并發連接數的回應
nginx的作用
正向代理
代理客戶端的:VPN ,加速器

反向代理
代理服務器端的

負載均衡策略
內置策略:輪詢
擴展策略:加權輪詢,ip hash
輪詢

加權輪詢

iphash
對客戶端請求的ip進行hash操作,然后根據hash結果將同一個客戶端ip的請求分發給同一臺服務器進行處理,可以解決session不共享的問題,推薦使用
動靜分離
有些請求是需要后臺處理的,有些請求是不需要經過后臺處理的(如:css、html、jpg、js等等檔案),這些不需要經過后臺處理的檔案稱為靜態檔案
讓動態網站里的動態網頁根據一定規則把不變的資源和經常變的資源區分開來,動靜資源做好了拆分以后,我們就可以根據靜態資源的特點將其做快取操作,提高資源回應的速度

嚴格意義上說應該是動態請求跟靜態請求分開,可以理解成使用Nginx 處理靜態頁面,Tomcat 處理動態頁面
1.是純粹把靜態檔案獨立成單獨的域名,放在獨立的服務器上,也是目前主流推崇的方案;
2.動態跟靜態檔案混合在一起發布,通過 nginx 來分開
安裝nginx
windows 10
下載
http://nginx.org/en/download.html
組態檔,cong/nginx.conf
啟動,在當前安裝目錄下進入cmd,nginx.exe
訪問,埠 默認80
http://localhost:80/
Linux
// 安裝c++
yum install gcc-c++ -y
// 查看版本
gcc -v
功能:預處理、編譯、連接、匯編
// 安裝ssl
yum install -y openssl openssl-devel
功能:用于網站加密通訊
// 安裝zlib
yum install -y zlib zlib-devel
//查看資訊
cat /usr/lib64/pkgconfig/zlib.pc
功能:用于對資料進行解壓縮,網站之間通信時,資料先壓縮再傳輸,通過消耗CPU的方式來節省網路帶寬,
// 安裝pcre
yum install -y pcre pcre-devel
// 查看版本號
pcre-config --version
功能:用于支持決議正則運算式
// 將下載下來的nginx-1.18.0.tar.gz放進/opt下并解壓
tar -xvzf nginx-1.18.0.tar.gz
// 進入目錄
cd nginx-1.18.0
// 執行命令
./configure
// 執行make命令
make
// 執行make install命令
make install
// 啟動nginx
cd /usr/local/nginx/sbin
./nginx
// 然后再瀏覽器輸入linux的ip地址 (:80,默認80埠,可以省略) 即可
nginx常用命令
要先啟動
linux下的命令
cd /usr/local/nginx/sbin/
./nginx 啟動
./nginx -s stop 停止
./nginx -s quit 安全退出
./nginx -s reload 重新加載組態檔
./nginx -v
ps aux | grep nginx 查看nginx行程
修改完組態檔后需要 reload
windows 10下的命令
nginx.exe // 啟動
nginx -s quit // 關閉
nginx -s reload // 重新加載組態檔
nginx -t // 驗證配置是否正確
nginx -V // 查看Nginx的版本號
組態檔說明
# 全域塊
// 全域配置,性能優化
#user nobody;
worker_processes 1; // 數值越大,并發越大
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
# events塊
events {
worker_connections 1024; // 每個worker_processes的最大連接數
}
http {
server {
listen 80;
server_name localhost;
location / {
// 訪問80埠的根目錄,則進入這里 即localhost:80/
}
location /admin {
// 訪問localhost:80/admin,則進入這里
}
}
}
負載均衡 反向代理
加權輪詢
// 負載均衡配置
upstream fzjh {
server 127.0.0.1:81 weight=1;
server 127.0.0.1:82 weight=1;
}
location /aa {
proxy_pass http://fzjh; // 代理路徑
}
iphash
upstream fzjh {
iphash;
server 127.0.0.1:81;
server 127.0.0.1:82;
}
location /aa {
proxy_pass http://fzjh; // 代理路徑
}
fair
按照后端服務器的回應時間來分配請求(時間短的優先)
upstream fzjh {
server 127.0.0.1:81;
server 127.0.0.1:82;
fari;
}
location /aa {
proxy_pass http://fzjh; // 代理路徑
}
動靜分離
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/297440.html
標籤:其他
下一篇:01-為什么要學習網路協議
