1 反向代理介绍

  https://www.cnblogs.com/jthr/p/16827214.html

2 负载均衡介绍

  https://www.cnblogs.com/jthr/p/16827328.html

3 Nginx的反向代理配置

3.1 配置server

  把location下面的root和index配置注释掉,添加proxy_pass配置,值就是代理的地址。

  注意,这里proxy_pass的地址要支持https的话还其它需要额外的配置。

    server {
listen 80;
server_name nginx1.com; location / {
proxy_pass http://www.atguigu.com;
#root /usr/local/mynginx/nginx1;
#index index.html index.htm;
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
} }

3.2 访问nginx1.com

  执行命令:systemctl reload nginx重新加载nginx

  浏览器的地址栏还是nginx1.com,代理成功

4 Nginx的负载均衡配置

4.1 启动两个服务

  先在计算机上启动两个服务

  192.168.28.1:8081

  192.168.28.1:8082

  它们分别提供一个接口

@RestController
@RequestMapping("/api")
public class NginxController1 {
@GetMapping
public String test1(){
return "success test1 8081";
}
}
@RestController
@RequestMapping("/api")
public class NginxController1 {
@GetMapping
public String test1(){
return "success test1 8082";
}
}

4.2 配置nginx

1)配置serer

  修改proxy_pass的值:http://httpadr; 其中httpadr是一个别名,随便取名字

    server {
listen 80;
server_name nginx1.com; location / {
proxy_pass http://httpadr/api;
#root /usr/local/mynginx/nginx1;
#index index.html index.htm;
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

2)配置upstream

  upstream是和server同级别的

  注意:upstream 后面接的httpadr要和上面的别名对应上(http://httpadr/api;),这样组合就形成完整的路径http://192.168.28.1:8081/api,http://192.168.28.1:8082/api

upstream httpadr{
server 192.168.28.1:8081;
server 192.168.28.1:8082;
} server {
listen 80;
server_name nginx1.com; location / {
proxy_pass http://httpadr/api;
#root /usr/local/mynginx/nginx1;
#index index.html index.htm;
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

4.3 访问nginx1.com

  执行命令:systemctl reload nginx重新加载nginx

  

4.4 负载均衡策略

  默认情况下,nginx采用的是轮询策略,nginx还提供了其他几种常用的负载均衡配置

4.4.1 轮询

upstream bakend {
server 192.168.0.1;
server 192.168.0.2;
}

4.4.2 weight

  weight代表权重,默认为1,权重越高,被分配的客户端请求就会越多

 upstream webservers{
server 192.168.9.134:8081 weight=8;
server 192.168.9.134:8082 weight=2;
}

4.4.3 ip_hash

每个请求按访问IP的hash结果进行分配,这样每个访客就可以固定访问一个后端服务,一定程度上可以解决session问题

upstream bakend {
ip_hash;
server 192.168.0.1:88;
server 192.168.0.2:80;
}

4.4.4 fair(需要第三方插件)

  按后端服务器的响应时间来分配请求,响应时间短的将会被优先分配

upstream webservers{
server 192.168.9.134:8081;
server 192.168.9.134:8082;
fair;
}

4.4.5 url_hash(需要第三方插件)

  按访问URL的hash结果分配。这样相同的url会被分配到同一个节点,主要为了提高缓存命中率。比如,为了提高访问性能,服务端有大量数据或者资源文件需要被缓存。使用这种策略,可以节省缓存空间,提高缓存命中率

upstream webservers{
hash &request_uri;
server 192.168.9.134:8081;
server 192.168.9.134:8082;
}

4.4.6 least_conn

  按节点连接数分配,把请求优先分配给连接数少的节点。该策略主要为了解决,各个节点请求处理时间长短不一造成某些节点超负荷的情况

upstream webservers{
least_conn;
server 192.168.9.134:8081;
server 192.168.9.134:8082;
}

Nginx04 反向代理和负载均衡的更多相关文章

  1. Windos环境用Nginx配置反向代理和负载均衡

    Windos环境用Nginx配置反向代理和负载均衡 引言:在前后端分离架构下,难免会遇到跨域问题.目前的解决方案大致有JSONP,反向代理,CORS这三种方式.JSONP兼容性良好,最大的缺点是只支持 ...

  2. Nginx反向代理,负载均衡,redis session共享,keepalived高可用

    相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...

  3. Nginx服务器 之反向代理与负载均衡

    一.反向代理 正向代理: 客户端要获取的资源就在服务器上,客户端请求的资源路径就是最终响应资源的服务器路径,这就是正向代理.正向代理的特点:就是我们明确知道要访问哪个网站地址. 反向代理: 客户端想获 ...

  4. Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解

    转载:http://freeloda.blog.51cto.com/2033581/1288553 大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负 ...

  5. Tomcat:利用Apache配置反向代理、负载均衡

    本篇主要介绍apache配置反向代理,介绍了两种情况:第一种是,只使用apache配置反向代理:第二种是,apache与应用服务器(tomcat)结合,配置反向代理,同时了配置了负载均衡. 准备工作 ...

  6. 通过Nginx+tomcat+redis实现反向代理 、负载均衡及session同步

    一直对于负载均衡比较陌生,今天尝试着去了解了一下,并做了一个小的实验,对于这个概念有一些认识,在此做一个简单的总结 什么是负载均衡 负载均衡,英文 名称为Load Balance,指由多台服务器以对称 ...

  7. nginx的反向代理和负载均衡的一个总结

    之前一直觉的nginx的反向代理和负载均衡很厉害的样子,最近有机会接触了一下公司的这方面的技术,发现技术就是一张窗户纸呀,捅破了啥都明白了! 接下来先看一下nginx的反向代理: 简单的来说就是ngi ...

  8. Nginx反向代理、负载均衡、页面缓存、URL重写及读写分离详解

    大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统 ...

  9. nginx和tomcat实现反向代理、负载均衡和session共享

    这类的文章很多,nginx和tomcat实现反向代理.负载均衡实现很容易,可以参照http://blog.csdn.net/liuzhigang1237/article/details/8880752 ...

  10. docker-tomcat-nginx 反向代理和负载均衡

    1.部署tomcat镜像 下载官方的tomcat镜像. -jre7 启动docker容器,2个实例,分别映射不同的端口号, ~/work/sample-webapps/[v1.0|v2.0]/下面存放 ...

随机推荐

  1. netty系列之:来,手把手教你使用netty搭建一个DNS tcp服务器

    目录 简介 搭建netty服务器 DNS服务器的消息处理 DNS客户端消息请求 总结 简介 在前面的文章中,我们提到了使用netty构建tcp和udp的客户端向已经公布的DNS服务器进行域名请求服务. ...

  2. Axios +Vue + themeleay

    1.pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...

  3. js文字无限循环向上滚动

    html代码 <div id="scroll"> <div id="con1"> <p style="color: re ...

  4. 解决PC 拖动浏览器或者应用时CPU占用过高问题

    电脑配置5800X.6800XT.win11在用edge或chrome只打开百度和博客园首页的情况下,长按来回拖动浏览器窗口,会发现CPU占用直线上升.能直接从4%变成70-80%导致系统卡住...我 ...

  5. MIT6.828学习笔记3(Lab3)

    Lab 3: User Environments 在这个lab中我们需要创建一个用户环境(UNIX中的进程,它们的接口和实现不同),加载一个程序并运行,并使内核能够处理一些常用的中断请求. Part ...

  6. 安装es可视化软件Kibana

    一 Kibana介绍 Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作. 您.可以使用 Kibana 对 Ela ...

  7. JavaSE流程学习图

  8. TCP协议三握四挥、socket模块

    目录 传输层之TCP与UDP协议 应用层 socket模块 socket代码简介 代码优化 半连接池的概念 传输层之TCP与UDP协议 用于应用程序之间的通信 TCP与UDP都是用来规定通信方式的 ​ ...

  9. 对Asp.net WebApi中异步(async+await)接口实际使用及相关思考(示例给出了get,post,提交文件,异步接口等实践).

    [很多初学者的疑问] 为何作为web api这样的天然的并发应用,还需要在controller的action上声明使用async这些呢? <参考解答> 在 web 服务器上,.NET Fr ...

  10. Java8常见函数式接口总结

    函数式接口 函数式接口:有且仅有一个抽象方法的接口. 使用@FunctionalInterface注解来标记.如果接口不是函数式接口就会编译出错 满足条件的接口即使不加上注解,那也是函数式接口 函数式 ...