• windows配置nginx实现负载均衡集群 -请求分流


    windows配置nginx实现负载均衡集群

    一、windows上安装nginx

    1、下载nginx的windows版本http://nginx.org/en/download.html

    2、把压缩文件解压至c盘根目录,并将文件夹重命名成nginx

    3、在conf目录下的nginx.conf文件中,指定一个不冲突的端口号,这里测试用8088,代码段如下:

    server { 
         listen       8090; 
         server_name  localhost; 
    } 
    

    4、打开cmd命令行,运行如下命令:start nginx.exe

    1. >cd c:
    ginx 
    2. >nginx 
    

    好了,试试吧,打开浏览器,输入127.0.0.1:8090,如果出现下图,那就说明nginx服务器已经成功安装.

    二、配置nginx负载均衡

    1、打开conf目录下的nginx.conf,具体配置代码如下:

    #nginx进程,一般设置为和cpu核数一样
    worker_processes  1;
    
    #全局错误日志及PID文件
    error_log  logs/error.log;
    pid        logs/nginx.pid;
    
    #工作模式及连接数上限
    events {
        use   epoll;             #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
        worker_connections  1024;#单个后台worker process进程的最大并发链接数
        # multi_accept on; 
    }
    
    #设定http服务器,利用它的反向代理功能提供负载均衡支持
    http {
        include       mime.types;#文件扩展名与类型映射表
        default_type  application/octet-stream;#默认文件类型
        access_log    logs/access.log; #设定日志格式
    	sendfile	  on; #开启高效传输模式   	
    	#连接超时时间 单位是秒
        keepalive_timeout  65;
        tcp_nodelay        on;
        #开启gzip压缩
        gzip  on;
        gzip_disable "MSIE [1-6].(?!.*SV1)";
    	#设定请求缓冲
        client_header_buffer_size    1k;
        large_client_header_buffers  4 4k;
        
    	#设定负载均衡的服务器列表
    	upstream leizi { #weigth参数表示权值,权值越高被分配到的几率越大
    		server 10.204.3.223:8090 weight=1 max_fails=2 fail_timeout=30s;#真实服务器A
    		server 10.204.3.20:8090 weight=1 max_fails=2 fail_timeout=30s;#真实服务器B #这里是在30s内尝试2次失败即认为主机不可用!
        }
    	#基于域名的虚拟主机
        server {#Nginx代理服务器 
            listen       8090;
            server_name  localhost;
            access_log  logs/localhost.access.log  main;#设定本虚拟主机的访问日志
    		#默认请求
    		location / {
    			root   html; #站点根目录,即网站程序存放目录 
    			index  index.html index.htm index.php;  #首页排序
    
    			proxy_pass  http://leizi; #请求转向leizi定义的服务器列表
    			proxy_redirect  default; 
    		}
    		# 定义错误提示页面
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    		#静态文件,nginx自己处理
    		location ~ ^/(images|javascript|js|css|flash|media|static)/ {
    			root html;
    			#过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。
    			expires 30d;
    		}
    		#location 标签,根目录下的.svn目录禁止访问
    		location ~ /.svn/ {
    		 deny all;
    		}
    	    #设定查看Nginx状态的地址
    		location /NginxStatus {
    			stub_status            on;
    			access_log              on;
    			auth_basic              "NginxStatus";
    			auth_basic_user_file  conf/htpasswd;
    		}
        }
    }
    

    2、重启一下nginx吧,你可以在任务管理器中将原来的两个nginx进程结束然后按前面安装时的方法启动nginx,也可以直接输入命令:nginx -s reload来重启

    三、部署网站

    1、准备两个完全一样的ASP.NET测试网站程序,

    2、分别放在leizi服务器列表的IIS中,输入对应的ip地址试一下是否可用访问。

    3、访问代理服务器 127.0.0.1:8090 访问结果是每刷新一次就在leizi列表之间切换。

    四、总结:

    ​ 访问代理服务器 127.0.0.1:8090 访问结果是每刷新一次就在leizi列表之间切换 这样就起到了简单的轮询访问的效果,一定程度上起到了负载分流的作用至此,windows配置nginx实现负载均衡集群已经完成。

  • 相关阅读:
    《编写高质量代码》读书笔记
    IL,Emit之OpCodes说明(备查)
    每天进步一点点
    DOCTYPE 与浏览器模式分析[转]
    一个EL IF表达式引发的血案
    JVM系列文章
    SunOs设置环境变量
    Solaris系统查看进程与端口对应关系的命令
    jsp 报错调试
    vi命令提示:Terminal too wide
  • 原文地址:https://www.cnblogs.com/luomingui/p/10018883.html
Copyright © 2020-2023  润新知