nginx的作用及原理(一)
这里写目录标题
- 一、Nginx介绍
- 二、Nginx的反向代理
- 1、原理如图所示
- 2、反向代理的作用
- 3、总结
- 4、反向代理服务器配置
- 三、Nginx的正向代理
- 1、原理如下所示
- 2、负载均衡的五种算法
- 3、总结
- 4、正向代理服务器配置
- 三、负载均衡
- 1、原理如下所示
- 2、负载均衡的五种算法
- 四、nginx的热加载
- 启动
- 停止
- 重启
- 五、动静分离
一、Nginx介绍
nginx是轻量级web服务器,抗并发,只分发请求,不做处理;多个连接(万级别)可以对应一个进程;处理静态文件十分好。
二、Nginx的反向代理
1、原理如图所示
客户端通过internat给服务器发送请求,nginx反向代理服务器收到请求,通过内网IP地址,分发给内部网络的某台服务器处理,并将处理结果返回给internet上请求连接的客户端。
2、反向代理的作用
- 保证了内网的安全,通常将反向代理即前端服务器作为公网访问地址,Web服务器是内网
- 实现负载均衡,通过反向代理服务器来优化网站的负载
3、总结
反向代理代理的是服务端,代服务端接收请求。主要用于服务集群分布式部署的情况下,反向代理隐藏了服务器信息
4、反向代理服务器配置
server { listen 80; server_name localhost; //设置访问的域名 client_max_body_size 1024M; //设置允许客户端请求的最大的单个文件字节数location / {proxy_pass http://localhost:8080; //设置被代理服务器的端口或套接字,以及URLproxy_set_header Host $host:$server_port;}
}
三、Nginx的正向代理
1、原理如下所示
客户端在十分明确要访问的原始服务器地址的条件下,设定正向代理服务器(知正向代理服务器的IP地址和端口号)。客户端a发送指定目标(原始服务器)的请求到代理服务器,代理服务器转交请求并获得内容返回给客户端。
2、负载均衡的五种算法
(1)可以实现访问原来无法访问的资源
(2) 做缓存,加速访问资源
(3)对客户端访问授权,上网进行认证
(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
3、总结
正向代理的是客户端,代客户端接收请求,隐藏了客户端信息。客户端要非常明确要访问的服务器地址。
4、正向代理服务器配置
resolver 114.114.114.114 ; //配置正向代理的DNS服务器server {resolver_timeout 5s;listen 81; //正向代理的监听端口access_log e:\wwwroot\proxy.access.log;error_log e:\wwwroot\proxy.error.log;location / {proxy_pass http://$host$request_uri;}} // 使用服务器ip+端口号来进行代理
三、负载均衡
1、原理如下所示
客户端发送请求到反向代理服务器,反向代理服务器将请求按照一定的规则分发到不同的服务器进行处理,共同完成工作任务。
2、负载均衡的五种算法
round robin 轮询 (默认)
按时间顺序依次将请求分配到各个后台服务器中,挂掉的服务器自动从列表中剔除upstream bakend { server 192.168.0.1 down; server 192.168.0.2; }
weight 轮询权重
weight的值越大分配到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下,或在主从的情况下设置不同的权值,达到合理有效的地利用主机资源。upstream bakend { server 192.168.0.1 weight=10; server 192.168.0.2 weight=10; }
ip_hash
每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题。
upstream bakend { ip_hash; server 192.168.0.1:88; server 192.168.0.2:80; }
url_hash
按访问的URL的哈希结果来分配请求,使每个URL定向到同一台后端服务器,可以进一步提高后端服务器缓存的效率。Nginx本身不支持url_hash,需要安装Nginx的hash软件包。
upstream backend { server 192.168.0.1:88; //使用hash语句时,不能在使用weight等其他参数server 192.168.0.2:80; hash $request_uri; hash_method crc32; //使用hash算法}
- fair算法
fair算法可以根据页面大小和加载时间长短智能地进行负载均衡,根据后端服务器的响应时间来分配请求,响应时间短的优先分配。Nginx本身不支持fair,要安装upstream_fair模块才能使用。
upstream backend { server 192.168.0.1:88; server 192.168.0.2:80; fair; }
四、nginx的热加载
Nginx 是支持热启动的,当我们修改配置文件后,不用关闭 Nginx,就可以让配置生效
启动
① /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf //nginx安装目录地址 -c nginx配置文件地址(第一次启动)
②systemctl start nginx
③/usr/local/nginx/sbin/nginx
④ nginx.exe -s reload (Windows)
停止
重启
①systemctl restart nginx
②/usr/local/nginx/sbin/nginx -s reload
五、动静分离
//静态网页
server {listen 80; //端口 server_name localhost; //主机域名 client_max_body_size 1024M; //设置允许客户端请求的最大的单个文件字节数location / {root /root; //网站根目录index index.html; //默认发布页面}
}
nginx的作用及原理(一)相关推荐
- nginx的作用与原理
一.nginx的作用 nginx能做反向代理,那么什么是反向代理呢,举个栗子,我想在本地使用 www.xxx.com 的域名去访问 www.taobao.com.那么这个时候我们就可以通过nginx去 ...
- nginx配置文件及工作原理详解
nginx配置文件及工作原理详解 1 nginx配置文件的结构 2 nginx工作原理 1 nginx配置文件的结构 1)以下是nginx配置文件默认的主要内容: #user nobody; #配置用 ...
- Nginx负载均衡的原理
1.Nginx负载均衡的原理是什么? 客户端向反向代理发送请求,接着反向代理根据某种负载机制转发请求至目标服务器(这些服务器都运行着相同的应用),并把获得的内容返回给客户端,期中,代理请求可能根据 ...
- volatile关键字的作用、原理
在只有双重检查锁,没有volatile的懒加载单例模式中,由于指令重排序的问题,我确实不会拿到两个不同的单例了,但我会拿到"半个"单例. 而发挥神奇作用的volatile,可以当之 ...
- Nginx 反向代理工作原理简介与配置详解
Nginx 反向代理工作原理简介与配置详解 测试环境 CentOS 6.8-x86_64 nginx-1.10.0 下载地址:http://nginx.org/en/download.html 安装 ...
- Bundler 的作用及原理
Bundler 的作用及原理 翻译 · yesmeck · Created at one year ago · Last by teacafe2000 Replied at one year ago ...
- JAVA基础加强(张孝祥)_类加载器、分析代理类的作用与原理及AOP概念、分析JVM动态生成的类、实现类似Spring的可配置的AOP框架...
1.类加载器 ·简要介绍什么是类加载器,和类加载器的作用 ·Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader ...
- Batch Normalization的作用及原理
目录 声明 BN是什么[1] 为什么提出BN[1, 2] BN的作用及原理 加速训练,提高收敛速度[1] 缓解梯度消失(梯度爆炸)[3] 缓解过拟合[4] 其他相关问题 BN和激活函数的顺序问题[5] ...
- Nginx FastCGI的运行原理
一.FastCGI 1.介绍 CGI全称通用网关接口 Commmon Gateway Interface 用于HTTP服务上的程序服务通信交流的一种工具,CGI程序须运行在网络服务器上. 传统CGI接 ...
最新文章
- 兄弟,用大白话给你讲小白都能看懂的分布式系统容错架构
- MapReduce01
- [转]Oracle 初始化参数之cursor_sharing
- 2 RepMLP:卷积重参数化为全连接层进行图像识别 (Arxiv)
- php 封装JavaScript类
- 目标检测——使用loss发现噪声数据
- 超级计算机 500,191台超算500强排名分布区间:前百强4台,前两百强31台
- 《了凡四训》,仅仅12句,改变你的命运
- Second kill system learning
- .net GridView绑定数据、编辑、更新、删除(弹出确认对话框)、取消、根据条件隐藏或显示按钮操作
- QCustomplot使用分享(一) 能做什么事
- [MySQL]学习笔记目录(尚硅谷宋红康MySQL数据库教程)
- 技术管理进阶——什么是影响力
- java 小说系统_java 实现小说管理系统
- Rust程序设计语言-使用包、Crate和模块管理不断增长的项目
- Linux centOS系统备份还原(dd+rsync方式)
- 西电复试之——CCF 201912-1 报数
- 使用rust和actix实现一个视频流服务器
- 【CSS】947- 十几个 CSS 高级技巧汇总
- 大数据系统开发综合实践(淘宝双11大数据批处理分析系统、NBA 、淘宝购物大数据实时展示、Spark GraphX)
热门文章
- android 显示表情符号,在Android中显示表情符号
- 20190925-ORA-00600错误及被注入的软件
- Leetcode 507: 完美数
- Bugku-杂项-不简单的压缩包;一枝独秀
- java-EasyExcel导出excel设置单元格为文本格式(含代码)
- OpenEuler 会长久吗
- 计算机在幼儿园课程中的教学,计算机技术在幼儿教学中的运用策略
- 【C++探索之旅】开宗明义+第一部分第一课:什么是C++?
- springCloud 学习第一篇(介绍以及Rest 学习:服务者 与消费者 环境搭建)
- word 尾注后面如何加正文?