Linux Nginx 反向代理

使用代理服務器可以將請求轉發給內部的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 服務器上。


  • /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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章