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

创建了一个基于Maven或SpringInitializr的项目,包含一个Controller处理/buy请求。通过Nginx配置文件实现8080端口监听,转发到后端API并进行负载均衡。启动Nginx,检查配置正确性,最终在浏览器中验证集群设置成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

结果如下则成功完成集群

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kkoneone11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值