nginx 负载均衡搭建 基于一台服务器 不同端口
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=7001
和http://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
,进行访问了。