Nginx入门
Nginx简述
Nginx是一个开源且高性能、可靠的Http Web服务、代理服务。 开源,体现在直接获取Nginx的源代码。 高性能,体现在支持海量的并发。 高可靠,体现在服务稳定。
- 高性能、高并发
通常正常情况下,单次请求会得到更快的响应。另一方面在高峰期(如有数以万计的并发请 求),Nginx可以比其他Web服务器更快地响应请求。
- 高扩展性
Nginx功能模块化。Nginx官方提供了非常多的优秀模块提供使用。这些模块都可以实现快速增加 和减少。
- 高可靠性
所谓高可靠性,是指Nginx可以在服务器上持续不间断的运行,而很多web服务器往往运行几周 或几个月就需要进行一次重启。对于nginx这样的一个高并发、高性能的反向代理服务器而言, 他往往运行网站架构的最前端,那么此时如果我们企业如果想提供9999、99999,对于nginx持 续运行能够宕机的时间,一年可能只能以秒来计算,所以在这样的一个角色中,nginx的高可靠 性为我们提供了非常好的保证。
- 热部署
热部署是指在不停服务的情况下升级nginx,这个功能非常的重要。对于普通的服务,只需要kill 掉进程在启动,但对于Nginx而言,如果Nginx有很多的客户端连接,那么kill掉Nginx。Nginx会 像客户端发送tcp reset复位包,但很多客户端无法很好的理解reset包,就会造成异常。由于 Nginx的master管理进程与worker!作进程的分离设计,使得Nginx能够在7x24小时不间断服务 的前提下,升级Nginx的可执行文件。当然,也支持不停止服务更新配置、更换日志文件等功 能。
Nginx应用
首先Nginx技术成熟,具备企业最常使用的功能,如代理、代理缓存、负载均衡、静态资源、动 静分离、Https、Inmp、Inmt等等。其次使用Nginx统一技术栈,降低维护成本,同时降低技术更新成本。
Nginx的主要使用场景我归纳为三个,分为是静态资源服务、代理资源服务、安全服务,场景详 细介绍如下
如下图是一个网站的基本架构,首先用户请求先到达nginx,然后在到tomcat或php这样的应用 服务器,然后应用服务器在去访问redis、mysql这样的数据库,提供基本的数据功能。
那么这里有一个问题,我们的程序代码要求开发效率高,所以他的运行效率是很低的,或者说它 并发是受限,所以我们需要很多应用服务组成一个集群,为更多用户提供访问。
而应用服务一但构成集群,则需要我们的nginx具有反向代理功能,这样可以将动态请求传倒给 集群服务。
但很多应用构成集群,那么一定会带来两个需求。
1、 应用服务器需要动态扩展。2、 有些服务出问题需要做容灾。
那么我们的反向代理必须具备负载均衡功能。
其次,随着我们网络链路的增长,用户体验到的时延则会增加。如果我们能把一段时间内不会发 生变化的"动态"内容,缓存在Nginx,由Nginx直接向用户提供访问,那么这样用户请求的时延就 会减少很多,所以在这里反向代理会演生出另外一个功能"缓存",因为它能加速我们的访问。
在很多时候我们访问docs、pdf、mp4、png等这样的静态资源时,是没有必要将这些请求通过 Nginx交给后端的应用服务,我们只需要通过Nginx直接处理'静态资源'即可。这是Nginx的静态 资源功能。
当我们使用http网站时,可能会遭到劫持和篡改,如果使用https安全通讯协议,那么数据在传输 过程中是加密的,从而能有效的避免黑客窃取或者篡改数据信息,同时也能避免网站在传输过程 中的信息泄露。大大的提升我们网站安全。
PS:Nginx的功能远不止上面列出一角,随着我们后面课程的不断深入,会发现Nginx的功能非常 的强大。
Nginx组成部分
Nginx二进制可执行文件:它是Nginx本身框架以及相关模块等构建的一个二进 制文件,这个文件就相当于汽车本身,所有的功能都由它提供。
Nginx.conf文件:它相当于驾驶人员,虽然二进制可执行文件已经提供了许多 的功能,但是这些功能究竟有没有开启,或者开启后定义怎样的行为去处理请求,都是由 nginx.conf这个文件决定的,所以他就相当于这个汽车的驾驶员,控制这个汽车的行为。
access.log :它相当于这辆汽车经过所有地方形成的GPS轨迹,access.log会 记录Nginx处理过的每一条HTTP的请求信息、响应信息。
error.log:它相当于黑匣子,当出现了一些不可预期的问题时,可以通过 error. log将问题定位出来。
Nginx组成部分小结:
Nginx的组成部分是相辅相成,Nginx二进制可执行文件和Nginx.conf文件,它定义了Nginx处理 请求的方式。
而如果我们想对nginx服务做一些web的运营和运维,需要对access.log做进一步分析。
而如果出现了任何未知的错误,或者预期的行为不一致时,应该通过error.log去定位根本性的问题。
Nginx安装
1.yum安装Nginx服务,启动并加入开机自启
yum install nginx -y
systemctl enable nginx
systemctl start nginx
2.通过浏览器访问该服务器ip地址获取资源查看是否正常启动
提示无法访问网站,原因是防火墙拒绝了
关闭防火墙
systemctl stop firewalld.service
再访问
正常访问,防止重启开启我们禁用防火墙
systemctl disable firewalld.service
- 点赞
- 收藏
- 关注作者
评论(0)