Windows+IDEA+Nginx反向代理本机实现简单集群

news2024/9/27 17:27:34

先简单创建一个项目,可以是Maven也可以是Spring Initializr,如果是 Maven则需要自己配置启动类

按照目录路径创建controller类

 

 

package com.cloud.SR.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author:kkoneone11
 * @name:TestConrtoller1
 * @Date:2023/7/10 12:13
 */
@RestController
public class TestConrtoller1 {
    @Autowired
    StringRedisTemplate stringRedisTemplate;

    @RequestMapping("/buy")
    public String shopping(){
//        String result = stringRedisTemplate.opsForValue().get("goods:001");
//        int total = result == null ? 0 : Integer.parseInt(result);
        System.out.println("输出成功");
        return "ok";
    }
}

 

 启动后,在下面找到Services栏

然后找到对应的启动类按下ctrl+D就会弹出这个,就相当于是复制了另一份JVM,相当于两台主机。同时要注意在JVM处要修改对应的端口用-Dserver.port=命令

可以看到成功创建

然后下载nginx到本机,记住对应路径,地址如下:nginx: download

 

 进入到conf目录修改nginx的配置文件nginx.conf


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/json;

    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       8080;
        server_name  localhost;
        #指定前端项目所在位置
        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location /api {
            default_type application/json;
        	#internal;
        	keepalive_timeout   30s;
        	keepalive_requests  1000;
        	#支持keep-alive
        	proxy_http_version 1.1;
        	rewrite /api(/.*) $1 break;
        	proxy_pass_request_headers on;
        	#more_clear_input_headers Accept-Encoding;
        	proxy_next_upstream error timeout;
        	#proxy_pass http://127.0.0.1:8081;
        	proxy_pass http://backend;
        }
    }

    upstream backend {
        server 127.0.0.1:8081 max_fails=5 fail_timeout=10s weight=1;
        server 127.0.0.1:8082 max_fails=5 fail_timeout=10s weight=1;
    }
}

 这里的意思是:发送请求的时候nginx会先监听8080端口,如果有请求发到8080端口然后会把请求转到api路径,然后传输到proxy_pass代理的http://backend,然后再传到下方的uperstream backend进行端口地址的分配进行轮询。

先启动nginx

start nginx

 查看是否有对应进程

tasklist /fi "imagename eq nginx.exe"

重启nginx

nginx -s reload

查看nginx修改是否正确(注意是要完整的Nginx路径),正确会有successful显示

nginx -t -c D:/software/nginx-1.18.0/conf/nginx.conf

停止nginx

nginx -s stop

正确关闭nginx

nginx -s quit

重新启动集群

浏览器输入 localhost:8080/api/buy

结果如下则成功完成集群

 

 

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

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

相关文章

mac intellij idea配置settings.xml报错解决

今天在配置环境的时候,发现在运行代码的时候不断报错提示maven没有能够成功地被sync,解决方法将以下三点解决了之后,程序最终跑起来了。 1.将maven的版本配置对,之前项目都用的maven-3.8.5这个版本,而我原先用的是mave…

MQ集群搭建

1.⾸先,克隆⼀台IP地址为192.168.230.132的虚拟机,然后参考章节的内 容,在该主机上安装RabbitMQ等环境。再加上之前的虚拟机,这样我们就准备好了两台Linux服 务器。 修改/etc/hosts映射⽂件。 vim /etc/hosts 3.两台Linux主机修改…

python识别登录验证码图片中字符

应用场景:在测试接口时,需要先自动执行登录接口,登录接口需要输入图片中的字符验证码。 实现的步骤主要有以下几步: 一、执行/captcha接口,从接口响应中提取图形验证码的base64编码值; 二、去掉base64编码…

STM32CubeIDE使用示例(STM32CubeMX+STM32CubeIDE+Gcc+JLINK+STM32G030C8T6)

本文简单记录下STM32CubeIDE的使用方法,整体的环境是STM32CubeMXSTM32CubeIDEGccJLINKSTM32G030C8T6,实现的简单测试功能是让STM32G030C8T6板子上的LED闪烁,以STM32G030C8T6 PB4 脚做LED 输出闪烁为例,外部8MHZ 晶振,系统主频64MH…

word 目录创建与提取

前言 word实际上一直在用,但是笔者在写文档都没关注目录的概念,实际上目录就是富文本或markdown编辑器的标题,可以起到跳转的作用。笔者的毕业论文的目录居然还是手打的。 目录创建 实际上word书写的时候就需要设置标题,最近的…

雅思单词量要达到多少才能达到要求?

对于刚开始备考雅思的同学来说,雅思单词是考好雅思的基础,雅思单词量要达到多少才能过关呢?下面为大家介绍一下雅思词汇量的要求。 一、雅思词汇量要求 雅思听力词汇 3000~5000左右,雅思听力是以场景展开的&#xff…

51单片机--定时器与按键控制流水灯模式

文章目录 定时器定时器的介绍定时器的作用定时器框图定时器的工作模式计数器原理图: 中断系统中断程序流程STC89C52的中断资源定时器和中断系统 定时器的相关寄存器TCONTMODTH与TL有关中断的寄存器 按键控制流水灯模式 定时器 定时器的介绍 51单片机上的定时器是一…

率先布局 RWA 赛道,PoseiSwap 成为最具先进性的 DEX

RWA 全称为现实资产通证化,比如股票、期货、美债甚至房产等传统资产。RWA 正在成为加密行业发展的一个全新叙事方向,除了传统商业巨头比如高盛、西门子等开始向该领域深入布局外,以 MakerDAO、Binance、Aave、Maple Finance 等为代表的 Web3 …

MySQL_2

目录 一、函数 1、字符串函数 2、数值函数 3、日期函数 4、流程控制函数 二、约束 1、概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。 2、目的:保证数据库中数据的正确、有效性和完整性。 3、分类 4、外键约束 4…

命名管道使用示例

用命名管道实现client和server端进行通信 【实现步骤】 创建两个没有关系的进程--》编写client和server源文件,并分别编译成可执行程序;创建命名管道文件,用函数int mkfifo(const char *filename,mode_t mode);client端以写的方式打开管道文…

日志消息直接发送到kafka设计

背景: 日常工作中,我们一般都有需要分析业务日志的需求,有些业务日志记录了用户点击或者用户购买行为等有用的信息,所以我们一般都需要基于这些日志进行分析,本文我们就来看一下这种日志消息的流转图 技术方案&#…

阿里云ECS扩容硬盘空间及文件系统

一.通过阿里云控制台扩容硬盘 前往ECS实例详情页面的云盘页签。 登录ECS管理控制台。在左侧导航栏,选择实例与镜像 > 实例。在顶部菜单栏处,选择目标ECS实例所在地域。找到待扩容云盘所在的实例,单击实例ID。在实例详情页面,单…

一起来探索录音转文字哪个软件好用

在数字时代,录音转文字技术成为了一种不可或缺的工具,通过将语音内容转化为可编辑和搜索的文字,从而为我们带来了许多便利。那本文将探讨录音转文字的好处,并分享一些实际案例以及录音转文字软件。那么如果你还不知道录音转文字哪…

想做软件测试工程师,这7件事你必须先知道

目录 一、“开发者测试” 就是“开发者来测试” 二、没有什么测试不可以“自动化测试” 三、开发者测试”利在当下“,”赢得未来“ 四、TDD不是必须先写测试代码 五、UT覆盖率100%真的很不好 六、用测试来驱动架构和代码质量 七、从“我要写测试依赖代码”到“…

在iPad上轻松做笔记和绘画,西圣Pencil上手

触控笔是一种提高工作学习效率的方便工具,尤其是和平板搭配使用。但是iPad的Apple Pencil价格昂贵,不适合学生等经济条件有限的用户,所以他们需要寻找一些性价比高的国产替代品。我最近用了一支国产的电容触控笔,叫做西圣Pencil触…

[C++] C++11新特性分析介绍(1): 列表初始化、右值引用、完美转发、移动语义...

文章目录 [toc] C11介绍统一的列表初始化 {}initializer_list新的声明autodecltypenullptr 范围for智能指针STL 新容器**右值引用 ****容器中 另外的右值引用 **万能引用与完美转发 ****新的类功能新默认成员函数强制生成默认函数的关键字 default禁止生成默认函数的关键字 del…

【网络安全】带你了解什么是【黑客】

文章目录 背景定义分类白帽黑客(White Hat Hacker)黑帽黑客(Black Hat Hacker)灰帽黑客(Gray Hat Hacker) 黑客文化伦理问题黑客常用的攻击手段黑客攻击用户的常用策略有以下这些:防御黑客攻击的…

[Android 13]Binder系列--获取服务

获取服务 hongxi.zhu 2023-7-8 一、客户端发起获取服务 以SurfaceFlinger进程中获取InputFlinger服务为例 frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp sp<IBinder> input(defaultServiceManager()->getService(String16("inputflinger"…

Redis+IDEA极速了解和实现单机锁和分布式锁

单机下&#xff1a; 只适用于单机环境下&#xff08;单个JVM&#xff09;&#xff0c;多个客户端访问同一个服务器 1.synchronized package com.cloud.SR.controller;import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.cor…

跟我一起从零开始学python(六)数据库编程:MongoDB数据库

前言 回顾之前讲了python语法编程 &#xff0c;必修入门基础和网络编程&#xff0c;多线程/多进程/协程等方面的内容&#xff0c;昨天和今天讲到了数据库编程篇MySQL&#xff0c;Redis今天第三篇MongoDB篇&#xff0c;前面没看的也不用往前翻&#xff0c;系列文已经整理好了&a…