nginx负载均衡实战

负载均衡的做用:在多个服务器上部署同一个web项目,nginx会将用户的请求随机(可自定义)分发到其中一个web服务器,当其中任意一个或多个web服务器宕机时,不影响用户的正常访问。 css

基本网络构架: html

步骤: 前端

一、到http://nginx.org/ 下载好windows的zip包,解压后直接运行 nginx.exe,窗口会一闪而过,但在任务管理器可看到两个进程,咱们如今访问http://localhost,会显示以下内容。这是由于ngnix启动后,默认会监听本机的80端口,而后将该端口下的全部访问都转到了 html/index.html。 nginx

Welcome to nginx!

二、配置文件说明


    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }
    } web

service : 一个配置实例 windows

listen: 当前这个实例监听本机的端口号,这个在全部server中就是惟一的,否则一个端口被多个实例监听,nginx就不知该用哪一个处理了。 缓存

server_name:给当前实例定义一个名称 tomcat

location / : 监听当前端口全部请求 服务器

root : location 请求对应的本机文件目录,html 表示全部的请求都将以html文件夹作为根目录.这个配置最经常使用于缓存静态文件时使用,如js / css / image等 网络

index: 默认的首页,若是不存在index.html ,则显示index.htm

若是想让nginx监听到80端口访问时转到咱们本身的tomcat服务器,只需将localtion / 修改成以下就能够了:

location / {
     proxy_pass http://localhost:8080
}

这时咱们再访问http://localhost ,则会显示若是页面了,并且任何功能都不会受影响:


三、两个web服务器负载均衡:

upstream local_tomcat { 

    # 这里是本机的第一个web服务器 

    server localhost:8080;

    # 这里是本机的第二个web服务器 

    server localhost:9090; 

    #还可添加不少

server{  
        location / {  
           proxy_pass http://local_tomcat;  
        }  
        #......其余省略  

}

当访问http://localhost时,nginx会随机的跳转到8080与9090服务器。当8080服务器宕机时,9090会继续工做。若是想控制两个服务器的权重,好比 9090 服务器性能好,能够多处理一些请求,则能够以下配置权重

upstream local_tomcat {  
    server localhost:8080 weight=1;  
    server localhost:9999 weight=2;  

这样在9090受访的机率会比8080多一倍。

三、静态文件,这个好像conf.xml有现成的配置,只要改一下就能够,以下对图片的配置

#location ~ \.(png|jpg|bmp)$ {
    root    image;
}

全部png 、 jpg 、 bmp 的请求都会直接去访客根目录下的image文件夹,固然也可使用绝对路径。

四、还有待学习的地址

    session如何处理,由于分发到不一样的web服务器,session也须要在各个服务器上访问。好像这个能够作成无状态的session,这个在之后单独写文字进行探究。

相关文章
相关标签/搜索