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. Python中Print方法

    1 number1 = int(input("请输入第一个数:")) 2 number2 = int(input("请输入第二个数:")) 3 4 # 方法一: ...

  2. Python用yield form 实现异步协程爬虫

    很古老的用法了,现在大多用的aiohttp库实现,这篇记录仅仅用做个人的协程底层实现的学习. 争取用看得懂的字来描述问题. 1.什么是yield 如果还没有怎么用过的话,直接把yield看做成一种特殊 ...

  3. 数组去重函数(unique)

    题目链接 stl中的一员大将:unique 也就是去重,通俗来讲,这个玩应的用法一般是 unique(数组名,数组名+大小)(没错和sort几乎一模一样) 然后值得注意的有两点:第一点:在unique ...

  4. WIN10使用SSH连接VMWare16 Pro的CentOS8.4(保姆级)

    目录 本机环境 配置连接 本机环境 连接工具用的是MobaXterm,下载地址https://mobaxterm.mobatek.net/download.html VMWare16 Pro Cent ...

  5. A-深度学习面试题

    目录 目录 一,滤波器与卷积核 二,卷积层和池化输出大小计算 2.1,CNN 中术语解释 2.2,卷积输出大小计算(简化型) 2.3,理解边界效应与填充 padding 参考资料 三,深度学习框架的张 ...

  6. Devexpress中gridControl设置一列不可以编辑

     gridView1.Columns["列名"].OptionsColumn.AllowEdit = false;//设置列不可以编辑 记录一下. 大家如果有问题可以 Consol ...

  7. java环境改完版本后无效

    把C盘program files和X86两个文件夹中的Common Files中的Oracle文件夹删掉 这是jdk安装时自动生成的两个文件夹,记录了jdk的版本和路径,即使你的jdk安装路径不在C盘 ...

  8. thinkphp6的主要特性

    采用PHP7强类型(严格模式) 支持更多的PSR规范 多应用支持 ORM组件独立 改进的中间件机制 更强大和易用的查询 全新的事件系统 支持容器invoke回调 模板引擎组件独立 内部功能中间件化 S ...

  9. 【面试题总结】JVM02:JVM参数调优、类加载机制

    四.JVM参数调优 1.调优工具 (1)jvisualvm:jdk提供的性能分析工具,可以监控java进程,对dump文件分析:查看应用程序的详细信息,针对不同插件,实现监控GC过程.内存.进程.线程 ...

  10. Python requests 上传文件(以上传图片为例)

    from requests_toolbelt import MultipartEncoderimport requests encoderl = MultipartEncoder( fields = ...