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. C#面试题基础

    1.什么是GAC,他的作用是什么? 我的这篇文章有详细的介绍 https://www.cnblogs.com/zxtang/p/14313273.html 2.描述一个被protected inter ...

  2. 【lvgl】01-lvgl移植之在linux上跑

    目录 前言 linux安装SDL2 官方推荐 移植lvgl v8.0 目录框架 拉取lvgl 添加lv_conf.h和lv_drv_conf.h配置文件 lv_conf.h lv_drv_conf.h ...

  3. Go语言核心36讲30

    你好,我是郝林,今天我继续分享条件变量sync.Cond的内容.我们紧接着上一篇的内容进行知识扩展. 问题 1:条件变量的Wait方法做了什么? 在了解了条件变量的使用方式之后,你可能会有这么几个疑问 ...

  4. PGL图学习之图神经网络GNN模型GCN、GAT[系列六]

    PGL图学习之图神经网络GNN模型GCN.GAT[系列六] 项目链接:一键fork直接跑程序 https://aistudio.baidu.com/aistudio/projectdetail/505 ...

  5. qt quick工程升级,qmake工程升级至cmake

    升级原因 由于音视频工作需要,qt6比qt5的video相关更看重效率. 升级中遇到的问题 在开发的过程中,为了更快速的进行开发,对业务其他不需要代码运行效率的地方使用qml+js的方式进行编写.在升 ...

  6. ctfshow web入门部分题目 (更新中)

    CTFSHOW(WEB) web入门 给她 1 参考文档 https://blog.csdn.net/weixin_51412071/article/details/124270277 查看链接 sq ...

  7. (C++) C++ 中 shared_ptr weak_ptr

    shared_ptr std::shared_ptr<int> sp1 = new int(); // shared count = 1, weak count = 0 std::shar ...

  8. 简单使用Nginx反向代理和负载均衡

    配置文件主要是三点: events . http . server 配置反向代理和负载均衡策略 #配置tomcat的IP地址和访问端口||负载均衡:权重就是比例 upstream guotong { ...

  9. 在C#中使用Halcon开发视觉检测程序

    目录 简介 将 HALCON/.NET 添加到应用程序 添加控件 引用dll 调用Halcon算子 程序示例 HSmartWindowControl控件使用 加载.保存图像 扩展:加载相机图像 画线. ...

  10. @Transactional注解事务失效的几种场景及原因

    1. 介紹 在业务开发的许多场景中,我们会使用到通过事务去控制多个操作的一致性.比较多的就是通过声明式事务,即使用 @Transactional 注解修饰方法的形式.但在使用过程中,要足够了解事务失效 ...