Linux服务器教程之十一WebUI高负载均衡

举报
tea_year 发表于 2025/01/20 07:25:56 2025/01/20
【摘要】 nginxwebui 提供了一个 Web 界面,可以方便地管理多个 nginx 服务器的配置,并且可以实时查看 nginx 的状态和访问日志。部分支持功能如下: 多个nginx服务器部署管理 SSL证书文件上传和管理 反向代理配置管理 Websocket代理设置 HttpAuth配置设置 访问日志实时查看 对于初学 nginx 或管理多个 n

课程目标

  • 熟练掌握tomcat项目部署

  • 熟练LNMT架构的搭建

nginxwebui 提供了一个 Web 界面,可以方便地管理多个 nginx 服务器的配置,并且可以实时查看 nginx 的状态和访问日志。

部分支持功能如下:

    多个nginx服务器部署管理
    SSL证书文件上传和管理
    反向代理配置管理
    Websocket代理设置
    HttpAuth配置设置
    访问日志实时查看

对于初学 nginx 或管理多个 nginx 服务器的运维工程师来说,nginxwebui 给了大家更多的选择。

一、部署项目

1.1 启动程序 nginxWebUI-3.4.0.jar

  java -jar -Dfile.encoding=UTF-8 nginxWebUI-4.2.2.jar --server.port=8848 > /dev/null &
 占用端口, 默认以8080端口启动
 项目配置文件目录,存放数据库文件,证书文件,
 日志等, 默认为/app/code/nginxWebUI/
 注意Linux命令最后加一个&, 表示项目后台运行

image-20240820214037778.png

image-20240820214427725.png


1.2 ZrLog项目

1 前台: http: //zrlog.yunhelinux.cn:8080/zrlog/

2 后台管理: http: //zrlog.yunhelinux.cn:8080/zrlog/admin/


 #数据库配置文件路径
 find -type f |xargs  grep '192.168.3.51'./db.properties:jdbcUrl=jdbc\:mysql\://192.168.3.51\:3306/zrlog?characterEncoding\=UTF-8&allowPublicKeyRetrieval\=true&useSSL\=false&serverTimezone\=GMT

二、对接Nginx

2.1 nginx代理功能

 #在web03做tomcat 项目的代理
 #在/etc/nginx/conf.d/创建zrlog.linux.cn.conf文件,代码如下:
 ​
 server{
         listen 80;
         server_name zrlog.linux.cn;
         error_log /var/log/nginx/zrlog.error.log notice;
         access_log /var/log/nginx/zrlog.access.log main;
 ​
         location /{
                 proxy_pass http://127.0.0.1:8080;
                 proxy_set_header Host $http_host;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         }
 }
 ​
 #完毕后,检查代码
 nginx -t
 #配置/etc/hosts
 192.168.3.9 zrlog.linux.cn;
 #重启nginx
 systemctl restart nginx

image-20240820223340133.png

 #在windows下的hosts修改文件
 192.168.3.9 zrlog.linux.cn

image-20240820223430314.png

2.2 动静分离

         location ~* \.(html|jpg|jpeg|png|js|css)$ {
                 expires 10d;
                 proxy_pass http://127.0.0.1:8080;
                 proxy_set_header Host $http_host;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;               
         }

2.3 负载均衡

随着业务的发展,单实例服务已经不能够满足业务使用需要

pv 页面访问数量

qps 每秒查询次数 并发量

DAU 每日活跃用户数

单实例无法满足,扩容为多实例实施步骤:

①复制虚拟机,多实例

两台tomcat里项目里的内容要一致

在server04上配置和server03一样的实现:

1>建立项目文件夹目录,绑定host主机域名

image-20240821001158843.png

 [root@web03 logs]# vim /apps/tomcat/conf/server.xml
       <Host name="zrlog.xuzhichao.com"  appBase="/data/tomcat/zrlog"
             unpackWARs="true" autoDeploy="true">
         <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
                prefix="zrlog_access_log" suffix=".txt"
                pattern="%{X-Forwarded-For}i %l %u %t %r %s %b %{User-Agent}i %{Referer}i" />  <==定义日志格式,显示客户端真实IP地址
       </Host> 

image-20240821001249663.png

②配置nginx负载均衡**

在lb01上进行配置

 upstream tomcat{
         server 192.168.3.9:8080;
         server 192.168.3.10:8080;
 }
 ​
 server{
         listen 80;
         server_name zrlog.linux.cn;
         error_log /var/log/nginx/zrlog.error.log notice;
         access_log /var/log/nginx/zrlog.access.log main;
 ​
         location ~* \.(html|jpg|jpeg|png|js|css)$ {
                 expires 10d;
                 proxy_pass http://tomcat;
                 proxy_set_header Host $http_host;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;           }
 ​
         location /{
                 proxy_pass http://tomcat;
                 proxy_set_header Host $http_host;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         }
 }


总结

本篇技术文章以NginxWEBUI对接ZrLog,并实现了负载均衡的应用实践,后续为在生产环境进一步工作打下了扎实 基础。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。