nginx配置負載均衡


前兩天在學習負載均衡,然后就看到了nginx,當前做反向代理,負載均衡 nginx用的確實比較大,比如阿里用的Tengine也是基於nginx之后改的。當然,我們的項目中也有在用nginx。

nginx是一款反向代理的服務器,目的就是轉發http請求。這樣,可以不知道服務器地址,就可以對請求進行轉發。nginx,可以理解為一個中間人,用戶操作客戶端,通過nginx轉發到后端,后端請求處理返回給用戶。

這里貼出下載地址(windows):http://nginx.org/download/nginx-1.14.0.zip  


linux下安裝我使用的docker容器安裝的:

   第一步從docker下拉下來nginx實例 docker pull nginx

   第二步運行該實例,用設置端口等(若服務器占用80端口,請設置xx為其他未占用端口)   docker run -p xx:80 --name nginx -v $PWD/www:/www -v $PWD/logs:/wwwlogs -d nginx

  如果安裝在linux下,不了解docker,請自行百度,linux下安裝docker

安裝完成之后就可以進入實例,並配置nginx的反向代理和負載均衡了;

(負載均衡:為了減免服務器壓力,同過設置權重隨機訪問server服務器,當一個用戶訪問該接口,壓力很小,但是100萬個人訪問該接口壓力就很大了,負載均衡起的就是醬紫的作用,可配置多台服務器進行http請求)。

下來,開始配置nginx 反向代理:

打開conf下的nginx.conf文件,

其他暫時不看,這里直接看重點,

#這個是需要轉發的目標服務器地址以及端口號
upstream mynginx{ server localhost:
8080; #Apache } ## Start www.quancha.cn ## server { listen 80; server_name localhost; index index.html index.htm index.php; ## send request back to apache ## location / {
     #需要轉發請求的服務器 負載均衡也是如此配置 proxy_pass http:
//mynginx; #Proxy Settings proxy_redirect off;#是否跳轉 proxy_set_header Host $host; #請求要轉發的host proxy_set_header X-Real-IP $remote_addr;#請求的遠程地址 這些在瀏覽器的header都可看,不一一解釋 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_max_temp_file_size 0; proxy_connect_timeout 90; #連接前面的服務器超時時間 proxy_send_timeout 90;#請求轉發數據報文的超時時間 proxy_read_timeout 90;#讀取超時時間 proxy_buffer_size 4k; # 緩沖區的大小 proxy_buffers 4 32k; # proxy_busy_buffers_size 64k; # #proxy_buffers緩沖區,網頁平均在32k以下的 proxy_temp_file_write_size 64k; ##高負荷下緩沖大小(proxy_buffers*2) } }

這樣配置就可以起到反向代理的作用

 

負載均衡類似,配置多個tomcat地址,這里是偽集群方式

#配置多台服務器(這里只在一台服務器上的不同端口)
upstream mysvr {
    #權重比設置為1 : 3 意思為 用戶請求四次服務器,平均訪問8082端口3次,8081端口一次,以此達到服務器均衡的作用(高並發) server
127.0.0.1:8081 weight=1; server 127.0.0.1:8082 weight=3; #熱備 }
 server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;
        #access_log  logs/host.access.log  main;

     #靜態文件,nginx自己處理
        location ~ ^/(images|javascript|js|css|flash|media|static)/ {
            
            #過期30天,靜態文件不怎么更新,過期可以設大一點,
            #如果頻繁更新,則可以設置得小一點。
            expires 30d;
        }
    location  ~*^.+$ {       #請求的url過濾,正則匹配,~為區分大小寫,~*為不區分大小寫。
           #root path;  #根目錄
           #index vv.txt;  #設置默認頁
           proxy_pass  http://mysvr;  #請求轉向mysvr 定義的服務器列表
           #deny 127.0.0.1;  #拒絕的ip
           #allow 172.18.5.54; #允許的ip           
        } 

        location / {
            root   html;
            index  index.html index.htm;
        }
}

下來配置server{ } ,與反向代理配置類似,這里需要注意,反向代理比較適用於對靜態資源的訪問(反向到靜態資源服務器),負載均衡比較適用於對后端服務器集群

 

至此,Nginx簡單配置寫完,記錄自己的學習成果!以上僅為自己的見解,如有異議,可在評論區留言,轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM