1.配置文件配置

  1. //在http模块加上upstream配置
  2. upstream www.myweb.com {
  3. server 127.0.0.1:8080 weight=3;
  4. server 127.0.0.1:8081 weight=1;
  5. }
  6. //在server模块里添加location,并配置proxy_pass
  7. server{
  8. location /myweb {
  9. proxy_pass http://www.myweb.com;
  10. }
  11. }

注意:

  • 负载均衡是不需要配置root路径的,因为tomcat本身就设置了根路径,就是webapps目录。
  • 注意html文件在浏览器中会有缓存的,所以看起来没有实现负载均衡。
  • 假如nginx监听的端口是8080,那么我们的tomcat就不能使用8080端口启动了。
  • 注意看proxy_pass中带有http://,而upstream却没有

    2.负载均衡设置

    2.2 轮询

    轮询是默认配置,这里的轮询并不是每个请求轮流分配到不同的后端服务器,与ip_hash类似,但是按照访问url的hash结果来分配请求,使得每个url定向到同一个后端服务器,主要应用于后端服务器为缓存时的场景下。如果后端服务器down掉,将自动剔除
    1. upstream backserver {
    2. server 127.0.0.1:8080;
    3. server 127.0.0.1:9090;
    4. }

    2.2 权重

    每个请求按一定比例分发到不同的后端服务器,weight值越大访问的比例越大,用于后端服务器性能不均的情况
    1. upstream backserver {
    2. server 192.168.0.14 weight=5;
    3. server 192.168.0.15 weight=2;
    4. }

    2.3 ip_hash

    p_hash也叫IP绑定,每个请求按访问ip的hash值分配,这样每个访问客户端会固定访问一个后端服务器,可以解决会话Session丢失的问题
    算法:hash(“124.207.55.82”) % 2 = 0, 1;%2代表的是负载均衡的服务器台数。如果我的ip%2=1,那么我将永远访问的服务器都是1号。
    1. upstream backserver {
    2. ip_hash;
    3. server 127.0.0.1:8080;
    4. server 127.0.0.1:9090;
    5. }

    2.4 最少链接

    web请求会被转发到连接数最少的服务器上
    1. upstream backserver {
    2. least_conn;
    3. server 127.0.0.1:8080;
    4. server 127.0.0.1:9090;
    5. }

    2.5 backup和down

    ```

upstream backserver { server 127.0.0.1:9100;

  1. #其它所有的非backup机器down的时候,才请求backup机器
  2. server 127.0.0.1:9200 backup;

}

upstream backserver { server 127.0.0.1:9100;

  1. #down表示当前的server是down状态,不参与负载均衡

server 127.0.0.1:9200 down; }

  1. <a name="cVgLs"></a>
  2. ## 3.静态资源负载均衡
  3. 注意这里的81端口服务与82端口服务是另起的nginx服务。这里之所以没有配置root路径,那是因为这台nginx服务是专门拦截请求的,将请求负载均衡到了81、82端口服务。在81和82服务中我们进行了root根路径设置。

upstream static.myweb.com { server 127.0.0.1:81 weight=1; server 127.0.0.1:82 weight=1; } location ~ .*/(css|js|img|images) { proxy_pass http://static.myweb.com; }

```