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

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

Windows+IDEA+Nginx反向代理本机实现简单集群_第1张图片

按照目录路径创建controller类

Windows+IDEA+Nginx反向代理本机实现简单集群_第2张图片 

 

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";
    }
}

 Windows+IDEA+Nginx反向代理本机实现简单集群_第3张图片

 启动后,在下面找到Services栏

Windows+IDEA+Nginx反向代理本机实现简单集群_第4张图片

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

Windows+IDEA+Nginx反向代理本机实现简单集群_第5张图片

可以看到成功创建

Windows+IDEA+Nginx反向代理本机实现简单集群_第6张图片

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

 Windows+IDEA+Nginx反向代理本机实现简单集群_第7张图片

 进入到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进行端口地址的分配进行轮询。

Windows+IDEA+Nginx反向代理本机实现简单集群_第8张图片

先启动nginx

start nginx

 查看是否有对应进程

tasklist /fi "imagename eq nginx.exe"

重启nginx

nginx -s reload

Windows+IDEA+Nginx反向代理本机实现简单集群_第9张图片

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

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

停止nginx

nginx -s stop

正确关闭nginx

nginx -s quit

重新启动集群

Windows+IDEA+Nginx反向代理本机实现简单集群_第10张图片

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

结果如下则成功完成集群

 Windows+IDEA+Nginx反向代理本机实现简单集群_第11张图片

 Windows+IDEA+Nginx反向代理本机实现简单集群_第12张图片

你可能感兴趣的:(中间件,intellij-idea,nginx,java,服务器,windows)