工具架构师分布式

nginx 负载均衡搭建 基于一台服务器 不同端口

2019-04-17  本文已影响0人  steamed_bun

1、下载安装nginx

brew install nginx

2、测试安装成功

2.1、在命令行直接运行 nginx
2.1、检测是否成功,cat nginx.conf 可以看到

然后在浏览器输入http://localhost:8080/,启动成功则会如下图所示

3、配置负载均衡(其实就是配置nginx.conf)

3.1、有两个不同端口,但业务一样的,可以访问的服务,即打印传入的sign

    @GetMapping(value = "/third")
    public ResultOV third(String sign) {
        System.out.println(sign);
        return ResultOVUtil.success();
    }

3.2、在 idea 中启动两个服务,对应不同的端口,可得如下效果:
http://127.0.0.1:7001/sell/postman/third?sign=7001,执行后,在 sell 7001的服务打印 7001
同理,http://127.0.0.1:7002/sell/postman/third?sign=7002,执行后,在 sell 7002的服务打印 7002

3.3、配置nginx.conf
vim nginx.conf,最终代码结果如下:
(注: nginx.conf 大胆的改,要是需要恢复,可以拷贝一份nginx.con.default,然后改名为nginx.conf)

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    upstream proxy_test{
        server 127.0.0.1:7001;
        server 127.0.0.1:7002;
    }
    
    server {
        listen       8080;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://proxy_test;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    include servers/*;
}

3.4、重新启动nginx,执行 nginx -s reload
注:如果失败可以试一下 nginx -c /usr/local/etc/nginx/nginx.conf,然后再重启
3.5、验证是否成功
访问http://localhost:8080/sell/postman/third?sign=7001http://localhost:8080/sell/postman/third?sign=7002
可以看到两个服务都有7001和7002打印出来,说明已经成功

3.6、上述过程都是在同一台电脑里面测试,即这台电脑又是服务器,又是客户端
如果测试其他机器作为客户端访问,建议随便写一个域名添加到客户端的host中
如最后一条 服务器的ip 随便的域名

然后将修改 nginx.conf , 使 server_name与host配置的域名相同。
注:如果服务器也要作为客户端访问,则服务端也需要配置 host
当然服务器的host配置可以写为 127.0.0.1 www.test

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    upstream proxy_test{
        server 127.0.0.1:7001;
        server 127.0.0.1:7002;
    }
    
    server {
        listen       8080;
        server_name  www.test;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://proxy_test;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    include servers/*;
}

然后客户端就可使用http://www.test:8080/sell/postman/third?sign=7002,进行访问了。

上一篇 下一篇

猜你喜欢

热点阅读