• 【原创】学习日记4:nginx负载均衡(二)2012.01.08


    承接上文

    本次搭建的架构,草稿如下图:

    web1 :65.130 的www.test1.com的配置文件test.conf 如下

    [root@localhost nginx]# more conf.d/test.conf 
    server {
        listen       80;
        server_name  www.test1.com;
    
        #charset koi8-r;
        access_log  /var/log/nginx/test.access.log  main;
        error_log  /var/log/nginx/test.error.log;
    
        location / {
            root   /var/www/html/test/;
            index  index.php;
        }

    web2 :65.135 的www.test1.com的配置文件test.conf 和65.130一样一样的

    nginx proxy :65.134的nginx的配置文件nginx.conf如下:

    [root@localhost nginx]# more nginx.conf 
    
    user  nginx;
    worker_processes  1;
    
    error_log  /var/log/nginx/error.log warn;
    pid        /var/run/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        keepalive_timeout  65;
    
        #gzip  on;
    
        upstream www.test1.com {
           ip_hash;
           server 192.168.65.135:80;
           server 192.168.65.130:80;
        }
    
        include /etc/nginx/conf.d/*.conf;
    }

    注意:增加upstream节点,同时,设置为ip_hash模块,解决session共享问题(推荐使用)

    接着,www.test1.com的配置文件test.conf文件配置如下:

    root@localhost nginx]# more conf.d/default.conf 
    server {
        listen       80;
        server_name  www.test1.com;
    
        #charset t1com8-r;
        #access_log  /var/log/nginx/log/host.access.log  main;
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
    
            proxy_pass  http://www.test1.com;  #这个名字必须和upstream定义的保持一致
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
    
    .....
    
    以下省略
    
    }

    ok 本地真实机器(win7 )绑定host访问 www.test1.com 即可

    192.168.65.134  www.test1.com 

    结果如下:

    返回的是web1 :65.130的内容。

    ok 当我们其中的一台web挂掉之后,会是怎么样的呢?

    这时候,我停掉

    [root@localhost php]# service nginx stop
    Stopping nginx:                                            [  OK  ]

    我们再次访问www.test1.com

    见证奇迹的时候到了:请看

    nginx内置健康状态检测,会自动转到服务正常的web上。

    到此,整体工作还差一个备用nginx proxy,其中涉及到keepalived,做心跳。

    后续......

  • 相关阅读:
    ASP.NET MVC EF4.1
    RabbitMQ Boot Step
    图书商城项目总论
    CodeSharp.EventSourcing框架介绍如何实现异步事件订阅
    asp.net的cms 原理篇
    异步编程:线程概述及使用
    2012
    CodeSharp.EventSourcing框架介绍
    最近开发的一个文档管理系统
    团队项目开发
  • 原文地址:https://www.cnblogs.com/wangjiafang/p/2851026.html
Copyright © 2020-2023  润新知