[Nginx] 关键概念解读
我们知道,万维网的相互访问必须是外部网络间的相互访问,也就是访问的必须是外网IP或者映射为外网IP的域名。诸如192.168.1.11这样的内网IP是无法直接请求访问的。如果外网需要访问内网IP,需要通过一个媒介,这个媒介能代理外网对内网的访问。所有外网对某内网的访问都需要通过这个代理的Web服务器来过滤分发处理。这种服务器就叫反向服务器。常见的反向服务器有:Nginx、Apache、Lighttpd。其中,Apache目前的市场占有率最高。Nginx有种后来者居上的感觉,而且Nginx具有高并发,CPU和内存消耗少,稳定性好,配置简单、支持热部署等优点,受到诸如新浪、网易、豆瓣等很多公司的青睐。
正向代理服务器:只能代理内部网络对Internet的连接请求。不支持外部对内部网络的访问请求。客户机必须指定代理服务器。也就是我们通常说的通过代理服务器上网。很多同学也常用这种正向代理服务器方式“翻墙”。
反向代理服务器:特指能够代理外部Internet网络上的主机来访问内部网络(比如IP地址为内网192.168.1.)的服务器。外部网络不需要额外的配置。特别需要注意的是:反向代理服务器不保存任何网页的真实数据,所有的网页和程序,都保存在内部的Web服务器上。所以针对反向代理服务器的攻击不会使网页信息遭到破坏,从而进一步增强了Web服务器的安全性。最后要说明的是:)反向代理负载均衡服务器是内部网络与外网交流通信的唯一通道,所以如果通道被阻断了,则内部就再也无法为外部提供任何服务,这时候需要考虑至少两台以上的反向代理负载均衡服务器,实现故障转移与高可用。)反向代理服务器实现了负载均衡后,一般情况下用户可能用户的请求可能分发给了不同的服务器去处理,这时候就必然需要考虑session共享的问题了。
Rewrite的主要功能就是实现URL的重写
Nginx的Rewrite规则采用Perl兼容正则表达式的语法进行规则匹配
通过Rewrite规则,可以实现规范的URL、根据变量来做URL转向和选择配置。
)一些使用MVC框架的程序只有一个入口,可以通过Rewrite实现
)将动态URL地址要伪装成静态HTML,便于搜索引擎抓取。
)由于目录结构、域名变化的旧URL需要跳转到新的URL上,需要Rewrite处理
main全局配置
server虚拟主机配置
upstream反向代理负载均衡配置
location目录匹配配置
Nginx的模块不能够像Apache一样动态的添加,所有的模块都需要预先编译进Nginx的二进制可执行文件中。 #cd nginx-1.4.
#./configure
--prefix=/usr/local/
--sbin-path=/usr/local/nginx/nginx
--conf-path=/usr/local/nginx/nginx.conf
--pid-path=/usr/local/nginx/nginx.pid
--with-http_ssl_module
--with-pcre=/usr/local/src/pcre-8.34
--with-zlib=/usr/local/src/zlib-1.2.
--with-openssl=/usr/local/src/openssl-1.0.1c
#make
#make install
)Handlers - 处理模块 - 用于处理HTTP请求并输出内容
)Filters - 过滤模块 - 用于过滤Handler输出的内容
)Load-balancers - 负载均衡模块 - 选取多个后台服务器之一并将HTTP请求转发到该服务器。
--->客户端发送HTTP请求到Nginx服务器
--->Nginx基于配置文件中的位置选择一个合适的处理模块
--->负载均衡模块选择一台后端服务器(反向代理时)
--->处理模块进行处理并把输出缓冲放在第一个过滤模块上
--->第一个过滤模块处理后输出给第二个过滤模块处理
--->第2个交给第3个,... 第n个交给第n+1个
--->最后过滤完毕后,把处理结果发送给客户端
)核心模块 -> 主模块 + 事件模块
)标准HTTP模块
)可选HTTP模块
)邮件模块
)第三方模块
)补丁
web缓存位于web服务器和客户端之间
【客户端】--->【web缓存】--->【web服务器】
当客户端第一次访问一个URL时,Web缓存会去后端Web源服务器取回要输出的内容。
当客户端再次访问该URL时,Web缓存会直接输出内容给客户端,不再访问web源服务器。
降低内容源服务器、数据库的负担
减少网络延迟
提高用户访问的响应速度
增强用户体验
[Nginx] 关键概念解读的更多相关文章
- Kafka学习之(一)了解一下Kafka及关键概念和处理机制
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模小打的网站中所有动作流数据.优势 高吞吐量:非常普通的硬件Kafka也可以支持每秒100W的消息,即使在非常廉价的商用机器上也能做 ...
- C++指针的概念解读
C++指针的概念解读 超详细 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址.要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区 ...
- Docker关键概念阐述
要了解Docker需要对其体系结构中的几个关键概念有所了解,主要包括image.container.service.swarm.stack等. 在介绍这几个概念时,会使用到一个测试环境,这个测试环境是 ...
- 【NS-3学习】ns3-模拟基础:关键概念,日志,命令行参数
前言 本篇博客先介绍在仿真过程中会使用到的一些关键概念,然后介绍便于调试仿真脚本的常用技术:日志.命令行参数. 关键概念 节点 在因特网术语中,主机(终端)是指任何一台连接到网络的计算设备.ns-3并 ...
- Libra教程之:Libra协议的关键概念
文章目录 Libra协议 交易和状态 交易详解 账本状态详解 版本数据库 账户 账户地址 Proof 验证节点 存储 Libra协议 Libra协议是Libra区块链的基础,本文主要讲解Libra协议 ...
- nginx模型概念和配置文件结构
一. nginx模型概念: Nginx会按需同时运行多个进程: 一个主进程(master)和几个工作进程(worker),配置了缓存时还会有缓存加载器进程(cache loader)和缓存管理器进程( ...
- DotNetty关键概念及简单示例(基于NET5)
DotNetty关键概念及简单示例(基于NET5) 目录 DotNetty关键概念及简单示例(基于NET5) 1.DotNetty 设计的关键 1.1 核心组件 1.1.1 Channel 1.1.2 ...
- nginx基础概念
nginx基础概念(100%) connection¶ 在nginx中connection就是对tcp连接的封装,其中包括连接的socket,读事件,写事件.利用nginx封装的connection, ...
- (一)Netty源码学习笔记之概念解读
尊重原创,转载注明出处,原文地址:http://www.cnblogs.com/cishengchongyan/p/6121065.html 博主最近在做网络相关的项目,因此有契机学习netty,先 ...
随机推荐
- Python3基础 用三个双引号 print输出多行文本
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- Python3基础 使用技巧:把代码的字体变大
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- js将数组元素随机排序的方法
在群里看见的一个面试题,试了一下,还是可以做出来的,但是需要查资料,主要是岁一些方法了解的不清楚,可能这个跟我平时不太注重基础理论有关系,像什么构造函数啊,我根本就不关心什么叫构造函数,我一直都以为我 ...
- mysql for windows之my.ini优化
修改配置文件 C:\ProgramData\MySQL\MySQL Server 5.6\my.ini 并重新启动. 1, 查看MySQL服务器配置信息 mysql> show variabl ...
- C# WPF MVVM 实战 – 5- 用绑定,通过 VM 设置 View 的控件焦点
本文介绍在 MVVM 中,如何用 ViewModel 控制焦点. 这焦点设置个东西嘛,有些争论.就是到底要不要用 ViewModel 来控制视图的键盘输入焦点.这里不讨论,假设你就是要通过 VM,设置 ...
- ajax接收返回值获取不到问题
function testAsync() { //定义一个全局变量来接受$post的返回值 var result; //用ajax的“同步方式”调用一般处理程序 $.ajax({ url: " ...
- [SAP ABAP开发技术总结]几个小问题
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- .net反射详解(转)
摘自:http://www.cnblogs.com/knowledgesea/archive/2013/03/02/2935920.html 概述反射 通过反射可以提供类型信息,从而使得我们开发人员在 ...
- Codeforces Round #272 (Div. 2) C. Dreamoon and Sums 数学
C. Dreamoon and Sums time limit per test 1.5 seconds memory limit per test 256 megabytes input stand ...
- IBM Lotus Domino V8.5 服务器管理入门手册
转自 http://freemanluo.blog.51cto.com/636588/336128