宝塔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.hqwc.cn/news/479884.html

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

相关文章

Laravel02 路由基本概念和用法 给视图传递请求参数

Laravel02 路由基本概念和用法 1. 路由的基本概念2. 给视图传递请求参数 1. 路由的基本概念 routes文件夹下的web.php是用来定义路由规则的。 自己定义一个路径 2. 给视图传递请求参数 在laravel里使用一个辅助函数request来快速获取请求参数

OpenGL学习——17.模型

前情提要:本文代码源自Github上的学习文档“LearnOpenGL”,我仅在源码的基础上加上中文注释。本文章不以该学习文档做任何商业盈利活动,一切著作权归原作者所有,本文仅供学习交流,如有侵权,请联系我删除。L…

python+selenium 定位到元素,无法点击的解决方法

今天小编就为大家分享一篇pythonselenium 定位到元素,无法点击的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 selenium.common.exceptions.WebDriverException: Message: Element is not clickable at point (234.75, 22)…

LeetCode 0429.N 叉树的层序遍历:广度优先搜索(BFS)

【LetMeFly】429.N 叉树的层序遍历:广度优先搜索(BFS) 力扣题目链接:https://leetcode.cn/problems/n-ary-tree-level-order-traversal/ 给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)…

芋道-------如何实现工作流退回后重新提交到之前退回的节点

一、概述 上一节,我们讲过了工作流如何退回到申请人,接下来我们来讲一讲,如何重新提交。这里重新提交可以是再走一遍正常流程,同时也可以是直接跳过中间的步骤,直接继续给上一步退回的人审批。文章中会提及这两种情况。…

如何在iStoreOS软路由系统中安装cpolar实现公网远程本地电脑桌面

文章目录 简介一、配置远程桌面公网地址二、家中使用永久固定地址 访问公司电脑**具体操作方法是:** 简介 软路由是PC的硬件加上路由系统来实现路由器的功能,也可以说是使用软件达成路由功能的路由器。 使用软路由控制局域网内计算机的好处&#xff1a…

Weblogic漏洞复现【含解密和shell连接工具】

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 1、漏洞成因 序列化和反序列化本身并不存在问题&#x…

阿里云服务器价格购买价格表,一目了然!

2024年阿里云服务器租用价格表更新,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核4G服…

第三百六十六回

文章目录 1. 概念介绍2. 使用方法2.1 List2.2 Map2.3 Set 3. 示例代码4. 内容总结 我们在上一章回中介绍了"convert包"相关的内容,本章回中将介绍collection.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章回中介绍的内容是col…

【常识】大数据设计基础知识

底层存储:hadoop(hdfsmapreduce) Hadoop已经有十几年的历史,它是大数据领域的存储基石,HDFS目前仍然没有成熟替代品;MapR 文件系统在业内已经具有一定知名度了,不仅 MapR 宣布它自己的文件系统比 HDFS 快2-…

SICTF Round#3 wp web

web hacker sql无列名注入; 提示查询username参数,flag在flag表中; 传参测试发现,union select 可用,空格被过滤可以使用/**/代替 ,or也被过滤了且无法大小写、双写等绕过,导致无法查询flag表…

深度学习图像算法工程师--面试准备(1)

1 请问人工神经网络中为什么 ReLU 要好过于 tanh 和 Sigmoid function? 采⽤Sigmoid 等函数,算激活函数时(指数运算),计算量⼤,反向传播求误差梯度时,求导涉及除法和指数运算,计算量…