使用代理服務器可以將請求轉發給內部的Web服務器,使用這種加速模式顯然可以提升靜態網頁的訪問速度。因此也可以考慮使用這種技術,讓代理服務器將請求 均勻轉發給多臺內部Web服務器之一上,從而達到負載均衡的目的。這種代理方式與普通的代理方式有所不同,標準代理方式是客戶使用代理訪問多個外部Web 服務器,而這種代理方式是多個客戶使用它訪問內部Web服務器,因此也被稱爲反向代理模式。
實現這個反向代理能力並不能算是一個特別複雜的任務,每針對一次代理,代理服務器就 必須打開兩個連接,一個爲對外的連接,一個爲對內的連接,因此對於連接請求數量非常大的時候,代理服務器的負載也就非常之大了,在最後反向代理服務器會成 爲服務的瓶頸。
使用反向代理的好處是,可以將負載均衡和代理服務器的高速緩存技術結合在一起,提供有益的性能,具備額外的安全性,外部客戶不能直接訪問真實的服務器。並且實現起來可以實現較好的負載均衡策略,將負載可以非常均衡的分給內部服務器,不會出現負載集中到某個服務器的偶然現象。
-
實驗環境:
-
網站域名 : www.myweb.com
-
Server 192.168.1.2 CentOS 7.5 Nginx反向代理+DNS服務器
-
Web 1 192.168.1.3 CentOS 7.5 Nginx+MariaDB
-
Web 2 192.168.1.4 CentOS 7.5 Nginx+PHP+BBS
-
Web 3 192.168.1.5 CentOS 7.5 Nginx+PHP+BLOG
-
Server 192.168.1.2 配置 Nginx 作爲反向代理服務器,放置到三臺 Web 服務器之前,作爲用戶訪問的入口
Web 1 服務器僅僅處理靜態頁面,動態的頁面(php請求)統統都交付給後臺的Web 2 和 Web 3 服務器來處理。也就是說,可以把網站的靜態頁面或者文件放置到 Web 1下;動態的頁面和數據庫訪問都保留到後臺的 Web+PHP 服務器上。
- 首先在 Server 192.168.1.2 上安裝、配置 Nginx 和 DNS
- 詳細安裝、配置請參考拙作:
- DNS :https://blog.csdn.net/gaofei0428/article/details/103752324
- Nginx + PHP :https://blog.csdn.net/gaofei0428/article/details/104058580
- LNMP 部署分離:https://blog.csdn.net/gaofei0428/article/details/104224132
- 部署 LNMP 搭建 Discuz 和 WordPress:https://blog.csdn.net/gaofei0428/article/details/104269959
- 下面列出配置結果
- /var/named/myweb.com.zone
$TTL 1D
@ IN SOA www.myweb.com. root.myweb.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS www.myweb.com.
MX 10 root.mytest.com.
www IN A 192.168.1.3
bbs IN A 192.168.1.4
blog IN A 192.168.1.5
root IN A 192.168.1.2
- /etc/named.rfc1912.zones
zone "myweb.com" IN {
type master;
file "myweb.com.zone";
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "myweb.com.zone";
};
- 將本地 DNS 指向本機後,測試 DNS
-
Nginx 反向代理設置
-
server { #設置 Web 1
listen *:80;
location / {
proxy_pass http://www.myweb.com;
root /data/web/;
index index.html index.htm index.php;
}
}
server { #設置 Web 2
listen *:80;
location / {
proxy_pass http://bbs.myweb.com;
root /data/web/bbs;
index index.html index.htm index.php;
}
}
server { #設置 Web 3
listen *:80;
location / {
proxy_pass http://blog.myweb.com;
root /data/web/blog;
index index.html index.htm index.php;
}
}
- 啓動 Nginx 服務
- Web 1 設置
- Web 2 和 Web 3 設置
- 下面開始測試,首先將 WINDOWS 的 DNS 指向 Server 192.168.1.2