【运维】Nginx+Spring boot 实现负载均衡

Nginx+Spring boot 实现负载均衡

参考:
链接:https://www.jianshu.com/p/27540cce95ac

必需品:springboot 测试项目一个、Linux服务器一个、

  1. 将Springboot项目打包四个不同的端口
    8001.jar
    8002.jar
    8003.jar
    8004.jar

  2. 登陆Linux使用yum命令安装Nginx
    yum install nginx -y

  3. 需要用到的相关命令
    查看版本
    nginx -v

查看nginx安装目录:
ps -ef | grep nginx

检查配置文件
nginx -t

启动
systemctl start nginx.service

停止
systemctl stop nginx.service

重启
systemctl restart nginx.service

设置开机自启动
systemctl enable nginx.service

停止开机自启动
systemctl disable nginx.service

查看当前状态
systemctl status nginx.service

查看所有已启动的服务
systemctl list-units --type=service
4. 加入开机启动
systemctl enable nginx.service
5. 修改配置文件
vim /etc/nginx/nginx.conf

修改说明:
worker_processes 一般设置为CPU的核心数 比如我的是4核
worker_processes 4;
加入负载均衡的配置 upstream关键字。tomcat为我起的名字 等下需要使用该名字引用 weight分配权重
upstream tomcat {
server 127.0.0.1:8001 weight=1;
server 127.0.0.1:8002 weight=1;
server 127.0.0.1:8003 weight=1;
server 127.0.0.1:8004 weight=1;
}

在server节点下修改 location节点如下 tomcat为我之前起的名字
location / {
proxy_pass http://tomcat;
proxy_redirect default;
}
Nginx访问的端口我们随便 这里用默认80端口
listen 80 default_server;
listen [::]:80 default_server;

nginx 报错处理:

nginx报错"worker_processes" directive is duplicate

参考:https://blog.csdn.net/network_dream/article/details/86606865

查看nginx的错误日志error.log

报错信息:“worker_processes”指令重复在nginx.conf

发现nginx.conf配置出现了两份。不知道什么原因生成的两份。

解决:删除一份,重启成功。

nginx集群报错“upstream”directive is not allow here 错误

参考:https://blog.csdn.net/tanga842428/article/details/78962235

搭建了一个服务器, 采用的是nginx + apache(多个) + php + mysql(两个) 多个apache负载均衡及后端mysql读写分离的服务器.

当然如果网站流量小的话 就完全没有必要了! 一是搭建起来麻烦,二也增加了维护成本! 当你网站流量达到一定级别不考虑也得考虑了.

当设定好 upstream 如下:

upstream backend { server backend1.example.com weight=5; server backend2.example.com:8080; server unix:/tmp/backend3;}
执行命令:/usr/local/nginx/sbin/nginx -s reload 时 报错如下:

[emerg]: “upstream” directive is not allowed here in /usr/local/nginx/conf/nginx.conf:52

后来检查了一下原来是upstream backend 位置放错了, upstream位置应该放在http模块里面 但必须是在server模块的外面. 应该是下面这样的结构:

http{upstream backend { server backend1.example.com weight=5; server backend2.example.com:8080; server unix:/tmp/backend3;} server { location / { proxy_pass http://backend; }}}
如果你配置的服务器也如类似的错误 不妨检查你的upstream位置是否正确!

  1. 将打好的springboot jar包分别使用java -jar 命令跑起来
    java -jar 8004.jar &
    java -jar 8003.jar &
    java -jar 8002.jar &
    java -jar 8001.jar &

  2. 启动Nginx
    systemctl start nginx.service

  3. 远端直接访问ip+端口+项目全局路径即可访问到你的springboot项目,分别分发到不同的jar进行处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值