Nginx负载均衡

来源:互联网 发布:四海认证淘宝渔具钓竿 编辑:程序博客网 时间:2024/06/05 12:42

Nginx 负载均衡

nginx用处

  • 直接作为http server(代替tomcat,apache等服务器);
  • 另外一个最主要的功能就是作为反向代理服务器实现负载均衡

环境

  1. nginx部署在windows上,另外两台tomcat,地址为
  2. nginx下载地址http://nginx.org/en/download.html
  3. 两个tomcat分布部署在虚拟机上,假设他们的ip是192.168.155.1:80192.168.155.2:80,分别有路劲service1\index.htmlservice2\index.html,里面的内容只要好鉴别是哪个tomcat下的资源就行了
    4.先可以启动tomcat,访问相应的地址试试,能不能访问

配置

针对不同请求 负载均衡

下载好nginx之后,修改conf\nginx.conf

`    # ~表示根据正则匹配url,以下的效果是,当url包含service1,nginx会将请求给192.168.155.1:80处理    location ~ /service1/ {        proxy_pass    http://192.168.155.1:80;    }           #当url包含service2,nginx会将请求给192.168.155.2:80处理    location ~ /service2/ {        proxy_pass    http://192.168.155.2:80;    }`

启动nginx,这也就实现了最简单的负载均衡

例如:请求http://localhost/service1/index.html,在nginx容器下没有service1/index.html的路劲,nginx就是根据上面的配置,将请求交给http://192.168.155.1:80处理

访问同一请求 负载均衡

即用户访问同一请求时,配置多台tomcat,由nginx随机将请求分给某一个tomcat

在nginx.conf的http模块中添加,服务器集群server cluster

`    upstream interestCluster {        server 192.168.155.1:80;        server 192.168.155.2:80;    }`

在server模块中定义,负载均衡

`    location ~ /service1/ {      proxy_pass http://interestCluster ; #跟上面的集群名字一样      proxy_redirect off;      proxy_set_header Host $host;      proxy_set_header X-Real-IP $remote_addr;      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    }`

以上配置,到达的效果就是,当你访问http://localhost/service1/index.html,在nginx容器下没有service1/index.html的路劲,nginx就是根据上面的配置,将请求交给http://192.168.155.1:80或者时http://192.168.155.2:80处理

以上配置两个tomcat均衡,你可以根据自己服务器硬件配置,来配置权重,继续修改nginx.conf

`    upstream interestCluster {        server 192.168.155.1:80;        server 192.168.155.2:80 weight=2;    }`

即有三分之二的概率用到192.168.155.2,有三分之一的概率用到192.168.155.1

原创粉丝点击