1.Nginx基础
1.1基础概念:
作为一名初学者,需要知道Nginx(“engine x”)是一个名叫伊戈尔·赛索耶夫的俄罗斯人搞出来的,是一个高性能的HTTP和反向代理服务器,特点是占用内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。
Nginx是专为性能优化而开发的,因此性能是其最重要的考量标准,在实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50,000个并发连接数,要是你搞的网站活跃用户是这个数量级,那么用Nginx绝对是很香的。
1.2nginx作用
1.2.1 基本的web服务器
web(World wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交与的、跨平台的分布式图形信息系统。
Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如 per、php 等。但是不支持ava。Java 程序只能通过tomcat 配合完成。Nginx 专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。.
1.2.2正向代理
是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
这里客户端需要要进行一些正向代理的设置的。
正向代理中被代理的是客户端的请求
总结:
- 1、正向代理,我们的角色是 被代理者
- 2、正向代理,我们不对外提供服务,反而是对外消费服务,属于消费者
1.2.3反向代理
反向代理,客户端对代理是无感知的,客户端不需要任何配置就可以访问,客户端将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。
说明:客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。
反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。
总结:
- 1、反向代理,我们的角色是 局域网 web服务
- 2、反向代理,我们对外提供服务,属于服务提供者
1.2.4负载均衡
负载均衡(Load Balance),它在网络现有结构之上可以提供一种廉价、有效、透明的方法来扩展网络设备和服务器的带宽,并可以在一定程度上增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性等。用官网的话说,它充当着网络流中“交通指挥官”的角色,“站在”服务器前处理所有服务器端和客户端之间的请求,从而最大程度地提高响应速率和容量利用率,同时确保任何服务器都没有超负荷工作。
如果单个服务器出现故障,负载均衡的方法会将流量重定向到其余的集群服务器,以保证服务的稳定性。当新的服务器添加到服务器组后,也可通过负载均衡的方法使其开始自动处理客户端发来的请求。
简言之,负载均衡实际上就是将大量请求进行分布式处理的策略。
1.2.5动静分离
动静分离是指在web服务器架构中,将静态页面与动态页面或者静态内容接口和动态内容接口分开不同系统访问的架构设计方法,进而提升整个服务访问性能和可维护性。
一般来说,都需要将动态资源和静态资源分开,将静态资源部署在Nginx上,当一个请求来的时候,如果是静态资源的请求,就直接到nginx配置的静态资源目录下面获取资源,如果是动态资源的请求,nginx利用反向代理的原理,把请求转发给后台应用去处理,从而实现动静分离。
在使用前后端分离之后,可以很大程度的提升静态资源的访问速度,同时在开过程中也可以让前后端开发并行可以有效的提高开发时间,也可以有些的减少联调时间 。
2.nginx安装
window下直接解压到一个非中文目录下
linux下安装nginx
2.2.1 准备工作
执行: yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
安装nginx前需要确保linux上安装了gcc、PCRE 、zlib、OpenSSL
1.安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境。
2.PCRE(Per Compatible Regular Expressions)是一个Per库,包括 perl 兼容的正则表达式库nginx 的 htp 模块使用 pcre 来解析则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:3.zlib 库提供了很多种压缩和解压的方式,nginx 使用 lib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。4,OpenSSL是一个强大的安全套接字层索码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。nginx 不仅支持 htp 协议,还支持 https (即在ss协议上传输http),所以需要在 Centos 安装OpenssL 库。
执行后等待安装完毕!
2.2.2安装
将nginx安装包上传到usr/src目录下
解压到当前文件夹,命令为: tar -zxvf nginx-1.22.0.tar.gz
进入到解压后的nginx文件夹中cd nginx-1.22.0
配置当前nginx,命令为: ./configure 这里其实也是执行