A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李悦 初级黑马   /  2014-10-16 12:38  /  857 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

4、        负载均衡配置
下面设定负载均衡的服务器列表
upstream ixdba.net{
         ip_hash;
         server 192.168.12.133:80;
         server 192.168.12.134:80 down;
         server 192.168.12.135:8009 max_fails=3 fail_timeout=20s;
         server 192.168.12.136:8080;
}
         upstream是Nginx的HTTP Upstream模块,这个模块通过一个简单的调度算法来实现客户端IP到后端服务器的负载均衡。在上面的设定汇总,通过upstream指令之内搞定了一个负载均衡器的名称ixdba.net。这个名字可以任意指定,在后面需要的地方直接调用即可。
         Nginx的负载均衡模块目前支持4种调度算法,下面进行分别介绍,其中后两项属于第三方的调度方法。
□轮训(默认)。每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某台服务器宕机,故障系统被自动踢出,使用户访问不受影响。
□Weight。指定轮询权值,Weight值越大,分配到的访问机率越高,主要用于后端每个服务器性能不均的情况下。
□ip_hash。每个请求按访问IP的hash结果分配,这样来自同一个IP的访客固定访问一个后端服务器,有效解决了动态页面存在的session共享问题。
□fair。比上面两个更加智能的负载均衡算法。此种算法可以依据页面大小和加载时间长短暂地进行负载均衡,也就是根据后端服务器的相应时间来分配请求,响应时间短的优先分配。Nginx本身是不支持fair的,如果需要使用这种调度算法,必须下载Nginx的upstrea_fair模块。
□url_hash。按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率。Nginx本身是不支持url_hash的,如果需要使用这种调度算法,必须安装Nginx的hash软件包。
    在HTTP Upstream模块中,可以通过server指令指定后端服务器的IP地址和端口,同时还可以设定每个后端服务器在负载均衡调度中的状态。常用的状态有:
    □down,表示当前的server暂时不参与负载均衡。
    □backup,预留的备份机器。当其他所有的非backup机器出现故障或者忙的时候,
        才会请求backup机器,因此这台机器的压力最轻。
    □max_fails,允许请求失败的次数,默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误。
    □fail_timeout,在经历了max_fails次失败后,暂停服务的时间。max_fails可以和fail_timeout一起使用。
    注意: 当负载调度算法为ip_hash时,后端服务器在负载均衡调度中的状态不能是weight和backup。
5、        server虚拟主机配置
虚拟主机的配置。建议将对虚拟主机进行配置的内容写进另外一个文件,然后通过include指令包含进来,这样更便于维护和管理。
server{
listen                           80;
server_name             192.168.12.188   www.ixdba.net;
index       index.html index.htm index.jsp;
root           /web/wwwroot/www.ixdba.net
charset     gb2312;
}
server标志定义虚拟主机开始。
listen用于指定虚拟主机的服务端口。
server_name用来指定IP地址或者域名,多个域名之间用空格分开。
Index用于设定访问的默认首页地址。
root指令用于指定虚拟主机的网页根目录,这个目录可以是相对路径,也可以是绝对路
径。
         access_log        logs/www.ixdba.net.access.log       main;
         access_log用来指定次虚拟主机的访问日志存放路径,最后的main用于指定访问日志的输出格式。
6、        URL匹配配置
URL地址配置是进行Nginx配置的最灵活部分。location支持正则表达式匹配,也支持
条件判断匹配,用户可以通过location指令实现Nginx对动、静态网页进行过滤处理。
         以下这段设置是通过location指令来网页URL进行分析处理,所有扩展名以.gif、.jpg、.jpeg、.png、.bmp、.swf结尾的静态文件都交给nginx处理,而expires用来指定静态文件的过期时间,这里是30天。
location ~.*\.(gif|jpg|jpeg|png|bmp|swf)$ {
         root           /web/wwwroot/www.ixdba.net;
         expires     30d;
}
以下这段设置是upload和html下的所有文件都交给nginx来处理,当然,upload和html
目录包含在/web/wwwroot/www.ixdba.net目录中。
         location ~^/(upload|html)/ {
                   root           /web/wwwroot/www.ixdba.net;
                   expires 30d;
         }
        
         在最后这段设置中,location是对此虚拟主机下动态网页的过滤处理,也就是将所有以.jsp为后缀的文件都交给本机的8080端口处理。
         location !.*jsp$ {
                   index index.jsp;
                   proxy_pass http://localhost:8080;
}
7、        StubStatus模块配置
StubStatus模块能够读取Nginx自上次启动以来的工作状态,此模块非核心模块,需要
在Nginx编译安装时手动置顶才能使用此功能。
         location /NginxStatus {
                                               stub_status                         on;
                                               access_log                           logs/NginxStatus.log;
                                               auth_basic                          “NginxStatus”;
                                               auth_basic_user_file        ../htpasswd;
         }
         stub_status设置为“on”表示启动StubStatus的工作状态统计功能。access_log用来指定StubStatus模块的访问日志文件。auth_basic是Nginx的一种认证机制。auth_basic_user_file用来指定认证的密码文件,由于Nginx的auth_basic认证采用的是与Apache兼容的密码文件,因此需要用Apache的htpasswd命令来生成密码文件,例如要添加一个webadmin用户,
可以使用下面方式生成密码文件:
         /usr/local/apache/bin/htpasswd –c /opt/nginx/conf/htpasswd webadmin
         会得到以下提示信息:
         New password:
         输入密码之后,系统会要求再次输入密码。确认之后添加用户成功。
         要查看Nginx的运行状态,可以输入http://ip/NginxStatus,然后输入刚刚创建的用户名和密码就可以看到如下信息:
         Active connections: 1
         server accepts handles requests
          393411 393411 393799
         Reading:0 Writing:1 Waiting:0
Active connections 表示当前活跃的连接数,第三行的三个数字表示  Nginx 当前总共处理了 393411 个连接,  成功创建 393411 次握手,  总共处理了 393799 个请求。最后一行的Reading 表示 Nginx 读取到客户端 Header 信息数,   Writing 表示 Nginx 返回给客户端的 Header信息数,“Waiting”表示 Nginx 已经处理完,正在等候下一次请求指令时的驻留连接数。
在最后这段设置中, 设置了虚拟主机的错误信息返回页面, 通过 error_page 指令可以定制各种错误信息的返回页面。在默认情况下,Nginx 会在主目录的 html 目录中查找指定的返回页面,特别需要注意的是,这些错误信息的返回页面大小一定要超过 512K,否者会被ie 浏览器替换为 ie 默认的错误页面。
error_page   404               /404.html;
error_page    500 502 503 504   /50x.html;
location = /50x.html {
root    html;
}
}
}

评分

参与人数 1技术分 +1 收起 理由
王震阳老师 + 1 赞一个!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马