[转]Nginx+mysql+php-fpm负载均衡配置实例

转 : http://www.jbxue.com/article/7923.html

介绍一个nginx、mysql、php-fpm环境下配置负载均衡的例子,有需要的朋友,可以参考下。

系统环境如下:
前端Nginx:192.168.93.137
后端web1:192.168.0.11
后端web2:192.168.0.12

1、前端nginx配置

复制代码代码示例:

http {
      ……
        client_max_body_size 300m;
        client_body_buffer_size 128k;
        proxy_connect_timeout 600;
        proxy_read_timeout 600;
        proxy_send_timeout 600;
        proxy_buffer_size 16k;
        proxy_buffers 4 32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;

upstream  www.jbxue.com  {
               #server   192.168.93.137:80;
               server   192.168.0.11:80;
               server   192.168.0.12:80;
       }
       upstream  www.jbxue007.com  {
               #server   192.168.93.137:80;
               server   192.168.0.11:80;
               server   192.168.0.12:80;
       }
      server
       {
               listen  80;
               server_name  www.jbxue.com;

location / {
          proxy_pass        http://www.jbxue.com;
          proxy_set_header   Host             $host;
          proxy_set_header   X-Real-IP        $remote_addr;
          proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
               }

log_format  jbxue  ‘$remote_addr - $remote_user [$time_local] $request ‘
     ‘"$status" $body_bytes_sent "$http_referer" ‘
     ‘"$http_user_agent" "$http_x_forwarded_for"‘;
               access_log  /home/logs/www.jbxue.log  jbxue;
       }

server
       {
               listen  80;
               server_name  www.jbxue007.com;

location / {
          proxy_pass        http://www.jbxue007.com;
          proxy_set_header   Host             $host;
          proxy_set_header   X-Real-IP        $remote_addr;
          proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
               }

log_format  jbxue007  ‘$remote_addr - $remote_user [$time_local] $request ‘
     ‘"$status" $body_bytes_sent "$http_referer" ‘
     ‘"$http_user_agent" "$http_x_forwarded_for"‘;
               access_log  /home/logs/www.jbxue.log  jbxue007;
       }
}

通过upstream 名字 {}定义后端web的负载机器,然后在虚拟主机中通过 proxy_pass http://名字; 来使用upstream,再自定义一下日志格式,以获取用户的IP。

2、后端web配置:

复制代码代码示例:

server
{
  listen       80;
  server_name www.jbxue.com;
  index index.html index.php;
  root  /home/www/www.jbxue.com;
  access_log  /home/logs/access_www.jbxue.com.log;

if (-d $request_filename){
          rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
  }

error_page   500 502 503 504 404 403 http://www.jbxue.com;

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
          expires 30d;
  }

location ~ .*\.(js|css)?$ {
          expires 6h;
  }

location ~ .*\.(log|txt)$
  {
          deny all;
  }

location ~ .*\.(php)?$
  {
          fastcgi_pass  127.0.0.1:9000;
          fastcgi_index index.php;
          include fcgi.conf;
  }
        }

server
        {
  listen       80;
  server_name www.jbxue007.com;
  index index.html index.php;
  root  /home/www/www.jbxue007.com;
  access_log  /home/logs/access_www.jbxue007.com.log;

if (-d $request_filename){
          rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
  }

error_page   500 502 503 504 404 403 http://www.jbxue007.com;

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
          expires 30d;
  }

location ~ .*\.(js|css)?$ {
          expires 6h;
  }

location ~ .*\.(log|txt)$
  {
          deny all;
  }

location ~ .*\.(php)?$
  {
          fastcgi_pass  127.0.0.1:9000;
          fastcgi_index index.php;
          include fcgi.conf;
  }
}

附,Nginx负载的五种模式,即upstream的模式。

1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

复制代码代码示例:

upstream www.jbxue.com {
server 192.168.0.11 weight=10;
server 192.168.0.12 weight=10;
}

3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

复制代码代码示例:

upstream www.jbxue.com {
ip_hash;
server 192.168.0.11:80;
server 192.168.0.12:80;
}

4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。

5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

复制代码代码示例:

upstream www.jbxue.com {
server 192.168.0.11:80;
server 192.168.0.12:80;
hash $request_uri;
hash_method crc32;
}

用得比较多得应该是第3、5这两种。
后端的web文件同步可以选择nfs、rsync等。

负载均衡 之 nginx+多台php-fpm

https://code.google.com/p/sna/wiki/NginxWithPHPFPM

http://hyf.zjmp.com/article.asp?id=683

[转]Nginx+mysql+php-fpm负载均衡配置实例,布布扣,bubuko.com

时间: 2024-10-20 19:12:32

[转]Nginx+mysql+php-fpm负载均衡配置实例的相关文章

Nginx做NodeJS应用负载均衡配置实例

这篇文章主要介绍了Nginx做NodeJS应用负载均衡配置实例,本文直接给出配置实例,需要的朋友可以参考下. 负载均衡可以把用户的请求分摊到多个服务器上进行处理,从而实现了对海量用户的访问支持.负载均衡的架构如图所示: 对于复杂的Web应用来说,用Nginx做前端负载均衡是理所当然的事.下面,我们用Nginx做NodeJS应用的负载均衡.1.配置Nginx修改nginx.conf: upstream sample { server 127.0.0.1:3000; server 127.0.0.1

Nginx负载均衡配置实例详解

负载均衡负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦.先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况.那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可. 负载均衡的类别轮询            -应用程序轮流来响应请求(nginx默认采用)最少连接    -请求被分配到活动连接最少的服务器上ip-hash

Nginx反向代理实现负载均衡配置图解

[导读] 负载均衡配置是超大型机器需要考虑的一些问题,同时也是数据安全的一种做法,下面我来介绍在nginx中反向代理 负载均衡配置图解,大家可参考本文章来操作. 首先简单的介绍下nginx作为反向代理实现负载均衡.反向负载均衡配置是超大型机器需要考虑的一些问题,同时也是数据安全的一种做法,下面我来介绍在nginx中反向代理 负载均衡配置图解,大家可参考本文章来操作. 首先简单的介绍下nginx作为反向代理实现负载均衡. 反向代理方式是指以反向代理服务器来接受互联网上的连接请求,然后将请求转发给内

Nginx负载均衡配置实例详解(转)

负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦. 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况.那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可. 测试环境由于没有服务器,所以本次测试直接host指定域名,然后在VMware里安装了三台CentOS. 测试域名  :a.com A服务器IP :19

Nginx负载均衡配置实例

Nginx的负载均衡配置实例. 关于负载均衡的配置实例如下: http{    upstream server {      server 192.168.10.100:80 weight=3 max_fails=3 fail_timeout=25s;      server 192.168.10.101:80 weight=1 max_fails=3 fail_timeout=25s;      server 192.168.10.102:80 weight=4 max_fails=3 fai

nginx tomcat 集群与负载均衡配置实例

一.nginx tomcat 中用到的概念介绍 1.反向代理,当客户端的请求到来之后,反向代理接收这个请求然后将这个请求转发到后台的服务器上,如果做负载均衡的话,就会将这个请求分发到负载均衡的那些服务器上去. 正向代理端代理的是客户端 反向代理代理的是服务端.请求这个反向代理服务器,就好比是直接请求资源所在的服务端. 2.这里说到的负载均衡,就是nginx接收到客户端的请求之后将这些请求按照自己配置的方式分发给后台服务器(tomcat服务器),分发方式有轮回方式,weight 配置权重,权重越大

LNMT架构部署:Linux+Nginx+Mysql+Tomcat(负载均衡,动静分离)

环境描述:虚拟机准备两台,一台作为nginx服务器+mysql服务器,IP为:192.168.55.129:另外一台作为2台Tomcat服务器,IP为:192.168.55.130.客户端发来请求,首先由nginx处理,如果为静态内容直接由nginx响应,将结果直接给客户端:如果为动态内容,则由nginx反代至后端的Tomcat服务器. 在IP为192.168.55.129的服务器上安装和配置nginx关闭防火墙和selinux [[email protected] ~]# systemctl

Nginx反向代理以及负载均衡配置

前提:最近在研究nginx的用法,在windows上小试了一下,由于windows下不支持nginx缓存配置,所以本文主要是讲nginx,以及反向代理与负载均衡. [一.为什么要使用nginx] 要回答为什么要使用nginx,那就先说说nginx能做些什么. 首先,nginx能做反向代理,那么什么是反向代理呢,举个栗子,我想在本地使用 www.mickey.com 的域名去访问 www.taobao.com.那么这个时候我们就可以通过nginx去实现. 再者,nginx能实现负载均衡,什么是负载

Nginx反向代理,负载均衡配置

主配置文件:nginx.conf # For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user www; worker_processes 2; error_log /var/log/nginx/error.lo