前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nginx配置负载均衡

nginx配置负载均衡

作者头像
简单的程序员
发布2020-04-18 00:34:15
1.2K0
发布2020-04-18 00:34:15
举报
文章被收录于专栏:奕仁专栏

前两天在学习负载均衡,然后就看到了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 80: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文件,

其他暂时不看,这里直接看重点,

代码语言:javascript
复制
#这个是需要转发的目标服务器地址以及端口号
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地址,这里是伪集群方式

代码语言:javascript
复制
#配置多台服务器(这里只在一台服务器上的不同端口)
 upstream mysvr {   
    #权重比设置为1  : 3  意思为  用户请求四次服务器,平均访问8082端口3次,8081端口一次,以此达到服务器均衡的作用(高并发)  
      server 127.0.0.1:8081 weight=1;
      server 127.0.0.1:8082 weight=3;  #热备
}
代码语言:javascript
复制
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{ } ,与反向代理配置类似,这里需要注意,反向代理比较适用于对静态资源的访问(反向到静态资源服务器),负载均衡比较适用于对后端服务器集群

记: 2018-05-07 20:15发表

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 负载均衡类似,配置多个tomcat地址,这里是伪集群方式
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档