Day39nginx代理和負(fù)載均衡

  • web節(jié)點(diǎn)
[root@web01 ~]# cat /etc/nginx/conf.d/web.oldxu.com.conf 
server {
    listen 8080;
    server_name web.oldxu.com;
    root /web;

    location / {
        index index.html;
    }
}

  • 代理配置
[root@lb01 ~]# cat /etc/nginx/conf.d/proxy_web.oldxu.com.conf 
server {
    listen 80;
    server_name web.oldxu.com;

    location / {
        proxy_pass http://10.0.0.7:8080;
    }
}

代理參數(shù)

[root@lb01 ~]# cat /etc/nginx/conf.d/proxy_web.oldxu.com.conf 
server {
    listen 80;
    server_name web.oldxu.com;

    location / {
        proxy_pass http://10.0.0.7:80;
        include proxy_params;
        
    }
}
[root@lb01 ~]# cat /etc/nginx/proxy_params 
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Connection "";

proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;

proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;


負(fù)載均衡

[root@lb01 ~]# cat  /etc/nginx/conf.d/proxy_web.oldxu.com.conf 
upstream web {
    server 10.0.0.7:8000;
    server 10.0.0.8:8000;
}

server {
    listen 80;
    server_name web.oldxu.com;

    location / {
        proxy_pass http://web;
        include proxy_params;
        
    }
}

后端web配置 (所有的web都需要配置一致)

[root@web01 conf.d]# cat web.oldxu.com.conf 
server {
    listen 8000;
    server_name web.oldxu.com;
    root /web;

    location / {
        index index.html;
    }
}

[root@web02 conf.d]# cat web.oldxu.com.conf 
server {
    listen 8000;
    server_name web.oldxu.com;
    root /web;

    location / {
        index index.html;
    }
}

blog zh 集成
1.確保所有的web節(jié)點(diǎn)都安裝好了blog或者zh 并得確保是能正常訪問的
2.接入負(fù)載均衡

如果出現(xiàn)問題:
    將負(fù)載均衡--->代理到指定的一臺(tái)服務(wù)器   測試     在換一臺(tái)  測試 

配置如下:

[root@lb01 conf.d]# cat proxy_blog.oldxu.com.conf 
upstream blog {
    server 172.16.1.7:80;
    server 172.16.1.8:80;
}


server {
    listen 80;
    server_name blog.oldxu.com;

    location / {
        proxy_pass http://blog;
        include proxy_params;
    }
}
[root@web01 conf.d]# cat blog.oldxu.com.conf 
server {
    listen 80;
    server_name blog.oldxu.com;
    root /code/wordpress;
    client_max_body_size 100m;

    location / {
        index index.php index.html;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

[root@lb01 conf.d]# cat proxy_zh.oldxu.com.conf 
upstream zh {
    server 172.16.1.7:80;
    server 172.16.1.8:80;
}


server {
    listen 80;
    server_name zh.oldxu.com;

    location / {
        proxy_pass http://zh;
        include proxy_params;
    }
}
[root@web01 conf.d]# cat zh.oldxu.com.conf 
server {
    listen 80;
    server_name zh.oldxu.com;
    root /code/zh;
    client_max_body_size 100m;

    location / {
        index index.php;
    }
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

負(fù)載均衡調(diào)度算法

調(diào)度算法 概述
輪詢 按時(shí)間順序逐一分配到不同的后端服務(wù)器(默認(rèn))
weight 加權(quán)輪詢,weight值越大,分配到的訪問幾率越高 4 16G 8 64G
ip_hash 每個(gè)請求按訪問IP的hash結(jié)果分配,這樣來自同一IP的固定訪問一個(gè)后端服務(wù)器
url_hash 按照訪問URL的hash結(jié)果來分配請求,是每個(gè)URL定向到同一個(gè)后端服務(wù)器
least_conn 最少鏈接數(shù),那個(gè)機(jī)器鏈接數(shù)少就分發(fā)

2.后端的節(jié)點(diǎn)狀態(tài)指標(biāo)

狀態(tài) 概述
down 當(dāng)前的server暫時(shí)不參與負(fù)載均衡
backup 預(yù)留的備份服務(wù)器
max_fails 允許請求失敗的次數(shù)
fail_timeout 經(jīng)過max_fails失敗后, 服務(wù)暫停時(shí)間
max_conns 限制最大的接收連接數(shù)
[root@lb01 conf.d]# cat proxy_web.oldxu.com.conf 
upstream web {
    server 10.0.0.7:80 max_conns=1000 max_fails=3 fail_timeout=10s;
    server 10.0.0.8:80 max_conns=1000 max_fails=3 fail_timeout=10s;
    
    keepalive 16;   #最大的空閑連接數(shù)
    keepalive_timeout 100s; #超時(shí)時(shí)間
    keepalive_requests 50;  #一個(gè)連接最大的請求數(shù)
    
    #負(fù)載均衡與后端的連接和請求數(shù)的限制  
    #注意:需要配置  proxy_http_version   proxy_set_header Connection "";
}
server {
    listen 80;
    server_name web.oldxu.com;

    location / {
        proxy_pass http://web;
        include proxy_params;   
    }
}

會(huì)話保持

置一個(gè)網(wǎng)站:  
    1.測試session是否存儲(chǔ)至于本地
    2.配置多個(gè)web節(jié)點(diǎn)
    3.接入負(fù)載均衡   --->輪詢  -->正常登陸
    
    
    第一步:  記得測試
    [root@web01 ~]# cat /etc/nginx/conf.d/phpmyadmin.oldxu.com.conf 
    server {
        listen 80;
        server_name phpmyadmin.oldxu.com;
        root /code/phpmyadmin;

        location / {
            index index.php;
        }

        location ~ \.php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }

    第二步配置phpmyadmin
        [root@web01 ~]# cd /code/phpmyadmin/
        [root@web01 phpmyadmin]# cp config.sample.inc.php config.inc.php 
    
    第三步修改配置文件(修改為需要連接的數(shù)據(jù)庫IP地址)
        [root@web01 phpmyadmin]# vim config.inc.php 
            $cfg['Servers'][$i]['host'] = '172.16.1.51';
    
    第四步配置第二個(gè)節(jié)點(diǎn):  記得測試
    

    第五步: 接入負(fù)載均衡
    [root@lb01 ~]# cat /etc/nginx/conf.d/proxy_phpmyadmin.oldxu.com.conf 
    upstream php {
        server 172.16.1.7:80;
        server 172.16.1.8:80;
    }


    server {
        listen 80;
        server_name phpmyadmin.oldxu.com;

        location / {
            proxy_pass http://php;
            include proxy_params;
        }
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容