文档章节

nginx的简单使用:负载均衡

osliang
 osliang
发布于 10/15 20:16
字数 625
阅读 12
收藏 6

nginx:反向代理的服务器;用户发送请求到nginx,nginx把请求发送给真正的服务器,等待服务器处理完数据并返回,再把数据发送给用户。

nginx作为一个反向代理服务器,能缓存我们项目的静态文件,并实现反向代理与均衡负载,可以有效减少服务器压力,即使项目不大,也可以使用。

1.建立第一个springboot工程nginx,启动类如下:

@RestController
@SpringBootApplication
public class nginxApplication {//implements EmbeddedServletContainerCustomizer{    
    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }    
    public static void main(String[] args) {
        SpringApplication.run(nginxApplication.class, args);  
    }    
//    @Override
//    public void customize(ConfigurableEmbeddedServletContainer configurableEmbeddedServletContainer) {
// 
//        configurableEmbeddedServletContainer.setPort(8090);
//    }
}

访问:http://localhost:8090/

可以再如图显示:

1.1)修改conf/nginx.conf中的配置文件为:

location / {
            proxy_pass http://localhost:8090/;            
            #root   html;
            #index  index.html index.htm;
        }

启动cmd,进入有nginx.exe的目录,执行start nginx启动nginx,

浏览器访问:http://localhost/    ;如图

这样就实现了:用户请求--nginx--服务器

如果没有配置nginx.conf,这是一个欢迎页面。

2.把nginx工程复制为第二个工程nginx2,修改返回的字符串为:Hello World!-----222,为了区分访问到不同工程

启动访问如下:http://localhost:8091/

2.1)修改conf/nginx.conf中的配置文件为:

再http模块加入:

upstream test{
ip_hash;
server 192.168.1.164:8090 weight=10;#weight:权重
server 192.168.1.164:8091 weight=5;
}

并修改之前修改的

location / {
            proxy_pass http://test;
            #proxy_pass http://localhost:8090;    
            #root   html;
            #index  index.html index.htm;
        }

修改完后,执行nginx.exe -s reload,重新加载配置文件;

再次访问:http://localhost/,刷新几遍可以出现以下图2,如果刷不出来,可以把nginx工程直接关了,或者调整权重。

这样即实现了负载均衡。

参考:https://www.cnblogs.com/zhrxidian/p/5432886.html

完整nginx.conf:

#user  nobody;
worker_processes  3;

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

#pid        logs/nginx.pid;

events {
    #use  kqueue;#只能用于Linux中
    worker_connections  1024;
}

http {
    
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
#weight是权重。集群    
upstream test{
ip_hash;
server 192.168.1.164:8090 weight=10;#server 192.168.1.164:8090/home,会报错,修改后才可以,
server 192.168.1.164:8091 weight=5;
}
    
    server {
        listen       80;
        server_name localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
            
        location / {
            proxy_pass http://test;
            #proxy_pass http://localhost:8090;
            #proxy_pass http://localhost:8091;
            #root   html;
            #index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;       
    }    

}

 


 

© 著作权归作者所有

共有 人打赏支持
osliang
粉丝 1
博文 21
码字总数 3877
作品 0
广州
私信 提问
负载均衡器技术Nginx和F5的优缺点对比

对于数据流量过大的网络中,往往单一设备无法承担,需要多台设备进行数据分流,而负载均衡器就是用来将数据分流到多台设备的一个转发器。   目前有许多不同的负载均衡技术用以满足不同的应...

Zero零_度
2015/04/17
0
2
Nginx反向代理实现负载均衡配置图解

Nginx反向代理实现负载均衡配置图解 [导读] 负载均衡配置是超大型机器需要考虑的一些问题,同时也是数据安全的一种做法,下面我来介绍在nginx中反向代理 负载均衡配置图解,大家可参考本文章...

thinkyoung
2015/01/07
0
0
Nginx学习之负载均衡fair模块

Nginx学习之负载均衡fair模块 2017-04-10 20:27 写在开始 前面对Nginx的三种负载均衡实现做了一个简单的介绍,这里分享一个第三方的负载均衡模块nginx-upstream-fair。 模块介绍 The Nginx ...

linjin200
07/19
0
0
硬件负载均衡和软件负载均衡

LB 简单比较 – F5、NetScaler、LVS、Nginx、Haproxy 负载均衡技术是构建大型网站必不可少的架构策略之一。它的目的是,把用户的请求分发到多台后端的设备上,用以均衡服务器的负载。我们可以...

robin_key
2017/05/31
0
0
四层、七层负载均衡的区别

一、简介 所谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡;同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。 换句换说,二层负载均衡会通过一...

yzy121403725
01/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Accept和Content-type的意思

Accept意思是我希望接收到的数据类型 Content-type意思是我发出去的数据类型

大灰狼wow
22分钟前
1
0
Java每天10道面试题,跟我走,offer有!(五)

41.Iterator、ListIterator 和 Enumeration的区别?   迭代器是一种设计模式, 它是一个对象, 它可以遍历并选择序列中的对象, 而开发人员不需要了解 该序列的底层结构。 迭代器通常被称为...

Java干货分享
22分钟前
2
0
meta 解决页面浏览器兼容性

使用最高级的ie内核,如果支持谷歌内核,使用谷歌内核 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> 这 样写可以达到的效果是如果安装了GCF,则使用GCF来渲染页面,如...

之渊
24分钟前
2
0
极验验证demo(django+vue)

在使用之前,曾经试过用阿里云的人机验证,不过在签名部分比较复杂,下载sdk后需要自己写很多,折腾了一下,还是放弃。而腾讯云的人机验证python版本有demo,直接填写keyhe1secret就可以使用...

xiaoge2016
25分钟前
1
0
浅谈js回调

js回调极为简洁,无需声明,直接通过参数传入方法实体,调用方法实体的时候,可以直接调用方法名或者方法名加参数即可,以下看例子 socket.initWebSocket(this, userName, userId, (isSucce...

Carbenson
30分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部