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

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: Windows+IDEA+Nginx反向代理本机实现简单集群

先简单创建一个项目,可以是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

结果如下则成功完成集群

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
17小时前
|
存储 运维 负载均衡
Heartbeat+Nginx实现高可用集群
通过Heartbeat与Nginx的结合,您可以建立一个高可用性的负载均衡集群,确保在服务器故障时仍能提供无中断的服务。这种配置需要仔细的计划和测试,以确保系统在故障情况下能够正确运行。
8 2
|
2天前
|
域名解析 弹性计算 应用服务中间件
基于nginx反向代理实现OSS固定域名IP访问
本文基于阿里云OSS手册:https://help.aliyun.com/zh/oss/use-cases/use-an-ecs-instance-that-runs-centos-to-configure-a-reverse-proxy-for-access-to-oss,继续深入讨论如何利用nginx反向代理,实现固定的IP/域名访问OSS bucket。官方文档能够解决大部分的反向代理固定IP访问oss bucket的场景,但是对于必须使用域名作为endpoint的系统,会出现signatrue鉴权问题。本文继续在官方文档的基础上,将反向代理需要域名作为endpoint的场景补齐方案。
|
10天前
|
Unix Shell 开发工具
windows下如何安装git以及IDEA如何配置git
该文指导安装Git 2.15.0版本。首先从Git官网下载最新安装包,双击安装,依次选择Next,同意默认配置,确保勾选添加到环境变量。在配置选项中,选择在cmd中使用Git(第2项),行结束转换选Windows(第1项),终端模拟器选MinTTY(第1项)。安装完成后,通过右键菜单或直接打开Git Bash验证安装成功。最后,配置全局用户名和邮箱,并在IDEA中设置Git路径以完成集成。
|
16天前
|
负载均衡 监控 Unix
[AIGC] Nginx:一个高性能的 Web 服务器和反向代理
[AIGC] Nginx:一个高性能的 Web 服务器和反向代理
|
29天前
|
应用服务中间件 nginx Windows
【报错】Windows下启动nginx报:bind() to 0.0.0.0:80 failed...
【报错】Windows下启动nginx报:bind() to 0.0.0.0:80 failed...
|
1月前
|
负载均衡 JavaScript 前端开发
Nginx实现反向代理、负责均衡、动静分离
Nginx实现反向代理、负责均衡、动静分离
|
1月前
|
应用服务中间件 nginx
nginx进行反向代理的配置
在Nginx中设置反向代理的步骤:编辑`/etc/nginx/nginx.conf`,在http段加入配置,创建一个监听80端口、服务器名为example.com的虚拟主机。通过`location /`将请求代理到本地3000端口,并设置代理头。保存配置后,使用`sudo nginx -s reload`重载服务。完成配置,通过example.com访问代理服务器。
27 0
|
1月前
|
应用服务中间件 Nacos nginx
nacos 2.3.2模式 standalone 使用nginx 反向代理之后访问nacos控制台静
nacos 2.3.2模式 standalone 使用nginx 反向代理之后访问nacos控制台静
|
1月前
|
应用服务中间件 nginx Windows
windows下Nginx+RTMP部署
windows下Nginx+RTMP部署
24 0
|
1月前
|
负载均衡 应用服务中间件 API
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
44 4