文档章节

nginx配置upstream实现负载均衡

shanpeng
 shanpeng
发布于 2016/07/17 15:06
字数 788
阅读 0
收藏 0
点赞 0
评论 0

10.130.130.84

 

upstream.ntest.conf

 

upstream ntest {

#    #ip_hash;

    server 10.130.130.84:1818;

    server 10.130.130.89:1818;

}

 

server {

    #set $host_path "/data/www/ntest";

    #access_log  /www/mysite/log/access.log  main;

 

    listen 80;

    server_name  ntest.happyelements.net;

    #root   /data/www/ntest;

    #set $yii_bootstrap "index.php";

 

    #error_log  /tmp/nginx/error.log  debug;  

    #charset utf-8;

    #proxy_pass http://ntest;

 

 

    location / {

        #index  $yii_bootstrap;

        #try_files $uri $uri/ /$yii_bootstrap?$args;

        proxy_pass http://ntest;

        proxy_set_header   Host             $host;

        proxy_set_header   X-Real-IP        $remote_addr;

        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

    }

}

 

ntest.conf

server {

    #set $host_path "/data/www/ntest";

    #access_log  /www/mysite/log/access.log  main;

 

    listen 1818;

    server_name  ntest.happyelements.net;

    root   /data/www/ntest;

    set $yii_bootstrap "index.php";

 

    error_log  /tmp/nginx/error.log  debug;

    charset utf-8;

    #proxy_pass http://ntest;

 

 

    location / {

        index  $yii_bootstrap;

        try_files $uri $uri/ /$yii_bootstrap?$args;

        #proxy_pass http://ntest;

    }

 

 

    #location ~ ^/(protected|framework|themes/\w+/views) {

    #    deny  all;

    #}

 

    #avoid processing of calls to unexisting static files by yii

    #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {

    #    try_files $uri =404;

    #}

 

    #location ~* \.(txt|doc|docx|zip|rar|xlsx|xls)$ {

    #    root /data/www/ntest/upload;

    #    deny all;

    #}

 

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

    #

    location ~ \.php {

        fastcgi_split_path_info  ^(.+\.php)(.*)$;

 

        #let yii catch the calls to unexising PHP files

        set $fsn /$yii_bootstrap;

        if (-f $document_root$fastcgi_script_name){

            set $fsn $fastcgi_script_name;

        }

 

        #fastcgi_pass   unix:/tmp/php-cgi.sock;

        #fastcgi_pass   127.0.0.1:9000;

        fastcgi_pass  unix:/tmp/php-cgi.sock;

        fastcgi_index  index.php;

        include fastcgi_params;

        fastcgi_param  SCRIPT_FILENAME  $document_root$fsn;

 

        #PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI

        #fastcgi_param  PATH_INFO        $fastcgi_path_info;

        fastcgi_param  PATH_INFO        $fastcgi_script_name;

        fastcgi_param  PATH_TRANSLATED  $document_root$fsn;

    }

 

    # prevent nginx from serving dotfiles (.htaccess, .svn, .git, etc.)

    location ~ /\. {

        deny all;

        access_log off;

        log_not_found off;

    }

 

 

 

10.130.130.89

 

ntest.conf

server {

    #set $host_path "/data/www/ntest";

    #access_log  /www/mysite/log/access.log  main;

 

    listen 1818;

    server_name  ntest.happyelements.net;

    root   /data/www/ntest;

    set $yii_bootstrap "index.php";

 

    #error_log  /tmp/nginx/error.log  debug;  

    charset utf-8;

    #proxy_pass http://ntest;

 

 

    location / {

        index  $yii_bootstrap;

        try_files $uri $uri/ /$yii_bootstrap?$args;

        #proxy_pass http://ntest;

    }

 

 

    #location ~ ^/(protected|framework|themes/\w+/views) {

    #    deny  all;

    #}

 

    #avoid processing of calls to unexisting static files by yii

    #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {

    #    try_files $uri =404;

    #}

 

    #location ~* \.(txt|doc|docx|zip|rar|xlsx|xls)$ {

    #    root /data/www/ntest/upload;

    #    deny all;

    #}

 

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

    #

    location ~ \.php {

        fastcgi_split_path_info  ^(.+\.php)(.*)$;

 

        #let yii catch the calls to unexising PHP files

        set $fsn /$yii_bootstrap;

        if (-f $document_root$fastcgi_script_name){

            set $fsn $fastcgi_script_name;

        }

 

        #fastcgi_pass   unix:/tmp/php-cgi.sock;

        #fastcgi_pass   127.0.0.1:9000;

        fastcgi_pass  unix:/tmp/php-cgi.sock;

        fastcgi_index  index.php;

        include fastcgi_params;

        fastcgi_param  SCRIPT_FILENAME  $document_root$fsn;

 

        #PATH_INFO and PATH_TRANSLATED can be omitted, but RFC 3875 specifies them for CGI

        #fastcgi_param  PATH_INFO        $fastcgi_path_info;

        fastcgi_param  PATH_INFO        $fastcgi_script_name;

        fastcgi_param  PATH_TRANSLATED  $document_root$fsn;

    }

 

    # prevent nginx from serving dotfiles (.htaccess, .svn, .git, etc.)

    location ~ /\. {

        deny all;

        access_log off;

        log_not_found off;

    }

 

 

}

Nginx来做负载设备,记录下upstream的几种配置方式。

第一种:轮询

upstream test{
   server 192.168.0.1:3000;
   server 192.168.0.1:3001;
}

第二种:权重

upstream test{
   server 192.168.0.1 weight=2;
   server 192.168.0.2 weight=3;
}

这种模式可解决服务器性能不等的情况下轮询比率的调配

第三种:ip_hash

upstream test{
   ip_hash;
   server 192.168.0.1;
   server 192.168.0.2;
}

这种模式会根据来源IP和后端配置来做hash分配,确保固定IP只访问一个后端

第四种:fair

需要安装Upstream Fair Balancer Module

upstream test{
   server 192.168.0.1;
   server 192.168.0.2;
   fair;
}

这种模式会根据后端服务的响应时间来分配,响应时间短的后端优先分配

第五种:自定义hash

需要安装Upstream Hash Module

upstream test{
   server 192.168.0.1;
   server 192.168.0.2;
   hash $request_uri;
}

这种模式可以根据给定的字符串进行Hash分配

具体应用:

server{
   listen 80;
   server_name .test.com;
   charset utf-8;

   location / {
       proxy_pass http://test/;
   } 
}

此外upstream每个后端的可设置参数为:

1.down: 表示此台server暂时不参与负载。

2.weight: 默认为1,weight越大,负载的权重就越大。

3.max_fails: 允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误。

4.fail_timeout: max_fails次失败后,暂停的时间。

5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器,应急措施。

© 著作权归作者所有

共有 人打赏支持
shanpeng
粉丝 1
博文 4
码字总数 3869
作品 0
海淀
技术主管
Nginx学习之负载均衡fair模块

Nginx学习之负载均衡fair模块 2017-04-10 20:27 写在开始 前面对Nginx的三种负载均衡实现做了一个简单的介绍,这里分享一个第三方的负载均衡模块nginx-upstream-fair。 模块介绍 The Nginx ...

linjin200
前天
0
0
分布式学习(3) ---- 初识Nginx

Nginx两大作用:1.轻量web容器 2.反向代理服务器。 在Java领域中,Nginx更多的被用作在前端提供负载均衡的反向代理服务。 所以本文仅简要介绍下反向代理概念和负载均衡的实现。 . 反向代理 ...

KKys
2017/02/06
0
0
Nginx配置负载均衡(upstream)+反向代理(httpproxy)

首先准备3台机器(当然是vm虚拟机),一台用来做负载均衡服务器,2台web服务,分别都安装上nginx,怎么安装nginx这里就不在叙述。 IP规划 => 负载均衡服务器:10.1.1.10 | web-1:10.1.1.11...

skyli
2015/04/02
0
4
Nginx安装负载均衡配置 fair check扩展

Nginx安装负载均衡配置 fair check扩展 前言 本文主要是针对Nginx安装、负载均衡配置,以及fair智能选举、check后端节点检查扩展功能如何扩展,进行讲解说明。 fair模块: upstream-fair,“...

linjin200
前天
0
0
NGINX负载均衡

(1)lb配置 配置文件内容 [root@lb conf]# cat nginx.conf worker_processes ; events { worker_connections ; } http { include mime.types; default_type application/octet-stream; send......

rewiner22
2017/03/08
0
0
Nginx反向代理与负载均衡:节点服务器单/多虚拟机配置+实验环境搭建+原理解析

0.说明 常见的集群架构及相关软件,可以参考下面的导图: 互联网企业常用的是负载均衡集群和高可用性集群,负载均衡集群强调“分担”,通过一定的调度算法 ,可以实现用多个节点服务器来分担...

xpleaf
2017/03/06
0
0
Nginx 四种分配方式——session处理

最近迷上了Nginx,真实麻雀虽小,五脏俱全..功能实在强大.. nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态、静态页面的分离,可以按...

一枚Sir
2014/07/22
0
0
Nginx负载均衡服务器

nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态、静态页面的分离,可以按照轮询、ip哈希、URL哈希、权重等多种方式对后端服务器做负...

凡尘里的一根葱
2015/10/23
33
0
Nginx服务器之负载均衡策略(6种)

一、关于Nginx的负载均衡   在服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器。详情请查看我的另一篇...

左羽
07/17
0
0
Nginx 配置从零开始

作为一个 nginx 的初学者记录一下从零起步的点滴。 基本概念 Nginx 最常的用途是提供反向代理服务,那么什么反向代理呢?正向代理相信很多大陆同胞都在这片神奇的土地上用过了,原理大致如下...

Yomut
2016/09/30
4
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Laravel5.5 MySQL配置、读写分离及操作

Laravel 让连接不同数据库以及对数据库进行增删改查操作: 参考:http://laravelacademy.org/post/854.html 配置读写分离 应用的数据库配置位于 config/database.php(但是数据库用户及密码等...

MichaelShu
6分钟前
0
0
Linux 查看用户

存储帐号的文件:/etc/passwd 存储密码的文件:/etc/shadow 查看当前系统所有用户 grep bash /etc/passwd root修改普通用户的密码 sudo passwd user_name 然后连续两次输入新的用户密码即可...

yeahlife
13分钟前
0
0
Webpack使用nodemon实时打包编译

业务场景: 1.编写一个npm组件包并且link到了项目文件中 2.需要不断的修改并run build编译npm包并且在项目run dev 查看效果 3.问题: 每次改完npm包都要手动run build编译十分的麻烦且低效,可不...

JamesView
24分钟前
0
0
电脑炸了,浪费我好几天时间,还是简要记下来吧

我的小本本一直在兢兢业业的干活,然而前几天说炸就炸了...... 爆炸现场: 软件: windows10 pro + EIS11+ 360卫士 BIOS:N1DET98W 2.24 硬件: Xeon E3 1505-V5 nv-M3000M thinkpadP70:20E...

Oh_really
28分钟前
0
0
Git之branch和checkout

1.branch是查看、创建、删除分支 #>git branch --helpNAME git-branch - List, create, or delete branchesSYNOPSIS git branch [--color[=<when>] | --no-color] [......

汉斯-冯-拉特
30分钟前
0
0
Mybatis拦截器之数据权限过滤与分页集成

需求场景 最近项目有个数据权限的业务需求,要求大致为每个单位只能查看本级单位及下属单位的数据,例如:一个集团军下属十二个旅,那么军级用户可以看到所有数据,而每个旅则只能看到本旅部...

佛系程序猿灬
39分钟前
9
0
SpringCloud 微服务 (十六) 服务追踪 Zipkin

问题 在服务中,有一个接口,该A接口中又调用了其他服务的B、C、D接口,出现一个请求耗时大的问题,这时候并不知道该B、C、D接口中哪个接口造成的耗时量,然后比如确定C服务接口出现的耗时量大,但...

___大侠
今天
0
0
Java面试基础篇——第八篇:抽象类与接口的区别

1.抽象类 抽象类:如果一个类中包含有抽象方法,或这个类使用abstract关键字修饰,则称这个类是抽象类。 抽象方法是什么呢?抽象方法就是指用abstract关键字修饰的方法。 需要注意的是:抽象...

developlee的潇洒人生
今天
2
0
jsoup 相关资料

1.jsoup 2.Jsoup概述 3.jsoup入门 4.jsoup Java HTML Parser 1.11.3 API

IT追寻者
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部