nginx的upstream实现负载均衡(2):centos7中配置实例

2017年01月17日 | 0 条评论 | 1524

1、Oracle VM VirtualBox在搭建虚拟机;

2、在虚拟机上安装centos7 64版本,分别为master,slave01,slave02三台虚拟机;

3、在虚拟机上安装lnmp环境(可以一键安装包,这样快速);

4、master虚拟机可以只配置nginx ,不过要是不想省服务资源,这台也安装lnmp;

5、方案如下:

    ①master,slave01,slave02都安装lnmp环境,其ip如下

        master(ip 10.5.100.159)

        slave01(ip 10.5.100.169);

        slave02(ip10.5.100.180);

    ②两个nginx服务器配置按照正常的配置就得,这里不再黏贴配置代码,请自行配置;

    ③master配置以及说明如下


        master(主机,作为轮询的服务器)

        user  www www;

        worker_processes  1;


        error_log  /server/log/nginx/error.log crit;

        pid        /server/server/nginx/logs/nginx.pid;


        #Specifies the value for maximum file descriptors that can be opened by this process.

        worker_rlimit_nofile 65535;


        events

        {

          use epoll;

          worker_connections 65535;

        }


        http {

                include       mime.types;

                default_type  application/octet-stream;


                #charset  gb2312;


                server_names_hash_bucket_size 128;

                client_header_buffer_size 32k;

                large_client_header_buffers 4 32k;

                client_max_body_size 8m;


               sendfile on;

                tcp_nopush     on;


                keepalive_timeout 60;

        #负载均衡配置;

 #nginx 的 upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。                  #另外一种方式是ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

               upstream xjinshop {

                   #ip_hash;

   #slave01

                   server 10.5.100.169 weight=5;

  #slave02

                   server 10.5.100.180 weight=5;

                }

                tcp_nodelay on;


                fastcgi_connect_timeout 300;

                fastcgi_send_timeout 300;

                fastcgi_read_timeout 300;

                fastcgi_buffer_size 64k;

                fastcgi_buffers 4 64k;

                fastcgi_busy_buffers_size 128k;

                fastcgi_temp_file_write_size 128k;


                gzip on;

                gzip_min_length  1k;

                gzip_buffers     4 16k;

                gzip_http_version 1.0;

                gzip_comp_level 2;

                gzip_types       text/plain application/x-javascript text/css application/xml;

                gzip_vary on;

                #limit_zone  crawler  $binary_remote_addr  10m;

                log_format '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';

                #include /server/nginx/conf/vhosts/*.conf;

#负载均衡配置;

server {

                       listen       80;

                       server_name  localhost;

                       location / {

                                #设置主机头和客户端真实地址,以便服务器获取客户端真实IP

                                proxy_set_header Host $host;

                                proxy_set_header X-Real-IP $remote_addr;

                                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                                #禁用缓存

                                proxy_buffering off;

                                #反向代理的地址

                                proxy_pass http://xjinshop;

                    }

                }

        }

6、 ① 在 slave01和slave02配置好环境后,服务器创建一个index.php文件,

    ② 然后slave01的index.php加上;slave02的index.php加上 ;

   ③ 访问master ip http://10.5.100.159/,则会看到轮询的结果。

技术咨询
换一个