宝塔nginx配置SpringBoot服务集群代理

宝塔nginx配置SpringBoot服务集群代理

1、需求:

现有一个springboot服务需要部署成集群,通过nginx负载均衡进行访问,其中这个springboot服务内置了MQTT服务、HTTP服务、TCP服务。

MQTT服务开放了1889端口

HTTP服务开放了8891端口

HTTP服务开放了8893端口

TCP服务开放了8893端口

该服务在宝塔部署启动后开启的端口

在这里插入图片描述

2、nginx代理部署后的集群服务

宝塔nginx的nginx.conf位置

/www/server/nginx/conf/nginx.conf

nginx.conf原始内容:

user  www www;
worker_processes auto;
error_log  /www/wwwlogs/nginx_error.log  crit;
pid        /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;stream {log_format tcp_format '$time_local|$remote_addr|$protocol|$status|$bytes_sent|$bytes_received|$session_time|$upstream_addr|$upstream_bytes_sent|$upstream_bytes_received|$upstream_connect_time';access_log /www/wwwlogs/tcp-access.log tcp_format;error_log /www/wwwlogs/tcp-error.log;include /www/server/panel/vhost/nginx/tcp/*.conf;
}events{use epoll;worker_connections 51200;multi_accept on;}http{include       mime.types;#include luawaf.conf;include proxy.conf;default_type  application/octet-stream;server_names_hash_bucket_size 512;client_header_buffer_size 32k;large_client_header_buffers 4 32k;client_max_body_size 50m;sendfile   on;tcp_nopush on;keepalive_timeout 60;tcp_nodelay on;fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;fastcgi_buffer_size 64k;fastcgi_buffers 4 64k;fastcgi_busy_buffers_size 128k;fastcgi_temp_file_write_size 256k;fastcgi_intercept_errors on;gzip on;gzip_min_length  1k;gzip_buffers     4 16k;gzip_http_version 1.1;gzip_comp_level 2;gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;gzip_vary on;gzip_proxied   expired no-cache no-store private auth;gzip_disable   "MSIE [1-6]\.";limit_conn_zone $binary_remote_addr zone=perip:10m;limit_conn_zone $server_name zone=perserver:10m;server_tokens off;access_log off;server{listen 888;server_name phpmyadmin;index index.html index.htm index.php;root  /www/server/phpmyadmin;#error_page   404   /404.html;include enable-php.conf;location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${expires      30d;}location ~ .*\.(js|css)?${expires      12h;}location ~ /\.{deny all;}access_log  /www/wwwlogs/access.log;}
include /www/server/panel/vhost/nginx/*.conf;
}

文件中的 include /www/server/panel/vhost/nginx/tcp/*.conf;表明了nginx加载.conf文件的位置,我们要配置集群代理,需要

在/www/server/panel/vhost/nginx/这个目录下面配置多个.conf文件,即可完成需求。

在这里插入图片描述

a、修改java_veiplinks-standalone.conf

upstream iotserver {server 192.168.0.26:8844;server 192.168.0.27:8844;server 192.168.0.28:8844;server 192.168.0.107:8848;server 192.168.0.104:8848;
}upstream fileserver {
#  server 192.168.0.26:8844; #此处指定文件上传到该服务器上server 192.168.0.107:8848;
}server {listen       80;server_name  iot_server # gzip configgzip on;gzip_min_length 1k;gzip_comp_level 9;gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;gzip_vary on;gzip_disable "MSIE [1-6]\.";root /home/wwwroot/iotlinks-client/dist;
#     include /etc/nginx/mime.types;location / {index  index.html;}location ^~/upload/ {proxy_pass http://fileserver;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP  $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}location ^~/veiplinks/file/static {proxy_pass http://fileserver/file/static;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP  $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_send_timeout      30m;proxy_read_timeout      30m;client_max_body_size    100m;}location ^~/veiplinks/ {proxy_pass http://iotserver/;proxy_set_header X-Forwarded-Proto $scheme;proxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP  $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_connect_timeout   1;proxy_buffering off;chunked_transfer_encoding off;proxy_cache off;proxy_send_timeout      30m;proxy_read_timeout      30m;client_max_body_size    100m;}
}

b、在tcp目录下创建文件ngx_stream_proxy.conf并编辑

   upstream mqtt-cluster {
#        hash $remote_addr consistent;server 192.168.0.26:1889 max_fails=3 fail_timeout=10s;server 192.168.0.27:1889 max_fails=3 fail_timeout=10s;server 192.168.0.28:1889 max_fails=3 fail_timeout=10s;server 192.168.0.107:1889 max_fails=3 fail_timeout=10s;server 192.168.0.104:1889 max_fails=3 fail_timeout=10s;}upstream http-cluster {
#        hash $remote_addr consistent;server 192.168.0.26:8891 max_fails=3 fail_timeout=10s;server 192.168.0.27:8891 max_fails=3 fail_timeout=10s;server 192.168.0.28:8891 max_fails=3 fail_timeout=10s;server 192.168.0.107:8891 max_fails=3 fail_timeout=10s;server 192.168.0.104:8891 max_fails=3 fail_timeout=10s;}upstream tcp-cluster {
#        hash $remote_addr consistent;server 192.168.0.26:8893 max_fails=3 fail_timeout=10s;server 192.168.0.27:8893 max_fails=3 fail_timeout=10s;server 192.168.0.28:8893 max_fails=3 fail_timeout=10s;server 192.168.0.107:8893 max_fails=3 fail_timeout=10s;server 192.168.0.104:8893 max_fails=3 fail_timeout=10s;}upstream rs485-tcp-cluster {
#        hash $remote_addr consistent;server 192.168.0.26:8894 max_fails=3 fail_timeout=10s;server 192.168.0.27:8894 max_fails=3 fail_timeout=10s;server 192.168.0.28:8894 max_fails=3 fail_timeout=10s;server 192.168.0.107:8894 max_fails=3 fail_timeout=10s;server 192.168.0.104:8894 max_fails=3 fail_timeout=10s;}server {listen 1884;proxy_pass mqtt-cluster;proxy_connect_timeout 30s;proxy_timeout 30s;}server {listen 8841;proxy_pass http-cluster;proxy_connect_timeout 30s;proxy_timeout 30s;}server {listen 8843;proxy_pass tcp-cluster;proxy_connect_timeout 30s;proxy_timeout 30s;}server {listen 8844;proxy_pass rs485-tcp-cluster;proxy_connect_timeout 30s;proxy_timeout 30s;}

3、重启ngnix服务器,当请求来到nginx服务会被转发到不同服务器上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/692615.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode94.二叉树的中序遍历

题目 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 : 输入:root [1,null,2,3] 输出:[1,3,2] 思路 中序遍历的顺序是左子树 -> 根节点 -> 右子树。因此,我们可以通过递归的方式遍历二叉树&…

《白话C++》第8章 8.4.1 INI文件简介,8.4.2面向过程的设计 Page 761

以下是一个INI例子文件的内容: [DISPLAY_SETTING] #是否显示启动窗口: will_show_splash_window yes default_title welcom... [NETWORK_SETTING] svc_host www.d2school.com svc_port 80 带中括号的行代表一个“配置段(section&#x…

[word] word 怎样批量把英文单词的首字母全部改成大写 #笔记#其他#学习方法

word 怎样批量把英文单词的首字母全部改成大写 word在处理长文档的过程中,有时候一个单词在多页重复出现。如果要把该单词的首字母改成大写,如果一个一个的改,费时费力。 方法:替换功能 如:我要把camtasia批量改成C…

【riscv】使用qemu运行riscv裸机freestanding程序

文章目录 1. 运行显示2. 工具准备3. 裸机代码和编译3.1 源码3.2 编译 4. 使用qemu仿真运行riscv裸机程序 1. 运行显示 详见左下角, 运行时串口输出的字符 A ; 2. 工具准备 # for riscv64-linux-gnu-gcc sudo apt-get install gcc-riscv64-linux-gnu# for qemu-s…

P6279 题解

P6279 题解 Overview 结论(待论证) Description 给定一个有向图,这个有向图的每一个点所连接的点都属于同一个集合。 求集合数量最大且字典序最小的集合标号方案。 Solution 先讲结论。 结论:用 vector 存储每个点所连接的…

Spring Cloud Sleuth:分布式链路跟踪

1. 理解分布式链路跟踪 1.1 什么是分布式链路跟踪 在分布式系统中,由于服务间的调用涉及多个节点和网络通信,出现问题时追踪问题的根源变得异常困难。分布式链路跟踪是一种技术,旨在解决这个问题。它允许开发人员追踪分布式系统中请求的流转…

C#是什么?可以用来做什么?

C#是什么?可以用来做什么? C#简介 C#(读作“C Sharp”)是一种容易使用不复杂新型的编程语言,不仅是面向对象,它的类型还安全。C# 源于 C 语言系列,C、C、Java 和 JavaScript 程序员很快就可以上…

适用于高云FPGA的JTAG

目标板卡:小梅哥芯海无涯GOWIN高云ACG525(GW5A-LV25UG324) 1.软件要求:必须用商业版,因为教育版(V1.9.9Beta-4 Education)不支持此封装的GW5A。商业版需要上网申请License,此处提供D4D853392AD8.lic文件(此方法为临时…

Linux ----防火墙值SNAT与DNAT

一、SNAT ①SNAT 应用环境: 局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正常路由) ②SNAT原理: 源地址转换,根据指定条件修改数据包的源IP地址,通常被叫做源映射 数据包从内网发送到公网时,SNAT会把数据包的源IP由…

基于stm32F103的蜂鸣器周期发声实验

蜂鸣器作为一种声音报警器件,应用广泛。本实验基于stm32F103单片机,通过控制蜂鸣器的IO口电平电压,使其周期性地进行电平翻转,从而驱动蜂鸣器发出周期性的鸣叫声。该实验主要运用了stm32的GPIO和定时器TIM的相关功能,不仅可以巩固这些外设的使用,也可以通过改变时间参数,控制蜂…

档案数字化加工涉密资质申请

等级介绍 涉密印制资质分为甲级和乙级两个等级。甲级资质单位可以从事绝密级、机密级和秘密级涉密印制业务。乙级资质单位可以从事机密级、秘密级涉密印制业务。 类别介绍 涉密印制资质包括涉密文件资料、国家统一考试试卷、涉密防伪票据证书、涉密光电磁介质、 涉…

题目 1138: C语言训练-求矩阵的两对角线上的元素之和

问题描述: 求矩阵的两对角线上的元素之和 样例输入: 3 1 2 3 4 5 6 7 8 9 样例输出: 25 问题分析: 因为奇数阶矩阵的主对角线和副对角线上的元素有重复,偶数阶矩阵的主对角线和副对角线上的元素无重复&#x…

软件测试面试题汇总

一、面试基础题 简述测试流程: 1、阅读相关技术文档(如产品PRD、UI设计、产品流程图等)。 2、参加需求评审会议。 3、根据最终确定的需求文档编写测试计划。 4、编写测试用例(等价类划分法、边界值分析法等)。 5、用例评审(…

OpenHarmony JS和TS三方组件使用指导

OpenHarmony JS和TS三方组件介绍 OpenHarmony JS和TS三方组件使用的是OpenHarmony静态共享包,即HAR(Harmony Archive),可以包含js/ts代码、c库、资源和配置文件。通过HAR,可以实现多个模块或者多个工程共享ArkUI组件、资源等相关代码。HAR不…

文件上传漏洞--Upload-labs--Pass07--点绕过

一、什么是点绕过 在Windows系统中,Windows特性会将文件后缀名后多余的点自动删除,在网页源码中,通常使用 deldot()函数 对点进行去除,若发现网页源代码中没有 deldot() 函数,则可能存在 点绕过漏洞。通过点绕过漏洞&…

响应式编程要点 (Java)

整体学习概览 前置知识函数式编程Lambda表达式实践、Java8 Stream Api的使用响应式编程的原理和思想Reactive Stream的思想和Api实践Reactor思想和Api实践WebFlux的使用SpringData R2DBC 前置知识:函数式编程 函数式编程要点-CSDN博客 响应式编程原理和思想 全链…

SwiftUI 更自然地向自定义视图传递参数的“另类”方式

概览 在 SwiftUI 中,正是自定义视图让我们的 App 变得与众不同!然而,除了传统的视图接口定义方式以外,我们其实还可以有更“银杏化”的选择。 如上图所示:对于 SubView 子视图所需的参数我们一开始并没有操之过急&…

[office] excel成绩表格数据排名次的教程 #职场发展#知识分享#媒体

excel成绩表格数据排名次的教程 Excel中经常需要使用到排名次的技巧,成绩表格数据具体该如何排名呢?接下来是小编为大家带来的excel成绩表格数据排名次的教程,供大家参考。 excel成绩表格数据排名次教程(一) 步骤1:不管在学校还是各个统计领…

MySQL8的ONLY_FULL_GROUP_BY SQL模式兼容问题

文章目录 1. 问题描述2. 解决方法1. 修改查询2. 修改SQL模式3. 使用ANY_VALUE()函数 1. 问题描述 Cause: java.sql.SQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column btc-cloud.t1.id which is not funct…

网络入山太困难?看格行随身WiFi如何助力大山教育!

近日,一则关于偏远大山的上网问题冲上了热搜,引发了社会关注。虽然很多山区都已经通了电、通了网,但是在一些贫困的地区,网络基础设施依旧薄弱,村民想要使用固定宽带,仍然十分困难。 而在山区的学生们&…