Nginx高性能Web服务器详解(一)-----(nginx的基本介绍和nginx的安装;配置文件语法和反向代理;负载均衡和热部署;日志切割和网页压缩)

本文详细介绍了Nginx高性能Web服务器,包括其作用、反向代理、负载均衡、热部署、日志切割和网页压缩等功能。Nginx作为一款轻量级的HTTP服务器,以其高并发、低内存消耗和模块化设计受到广泛应用。文章还阐述了Nginx的安装过程,配置文件语法以及如何实现负载均衡策略。此外,还讨论了如何进行Nginx的热部署,确保服务的平滑升级和版本回退。最后,提到了日志切割的必要性和手动实现方法,以及网页压缩对服务器性能优化的重要性。
摘要由CSDN通过智能技术生成

Nginx高性能Web服务器详解

1.nginx介绍

  1. 什么是nginx?

Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP/SMTP服务。

Nginx是一款轻量级的Web服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

  1. nginx的作用

反向代理

反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet上 的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

负载均衡

负载均衡就是将一个任务分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务,简单而言就是当有2台或以上服务器时,根据规则随机的将请求分发到指定的服务器上处理。负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡,而Nginx目前支持自带3种负载均衡策略,还有2种常用的第三方策略。

HTTP服务器

Nginx本身也是一个静态资源的服务,当只有静态资源的时候,就可以使用Nginx来做服务器,同时现在也很流行动静分离,就可以通过Nginx来实现。动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。

正向代理

正向代理,是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端,客户端才能使用正向代理。当需要把你的服务器作为代理服务器时,可以用Nginx来实现正向代理。

  1. nginx的优缺点

优点
高并发量:根据官方给出的数据,能够支持高达 50,000 个并发连接数的响应

简单稳定:配置简单,基本在一个conf文件中配置,性能比较稳定,可以7*24小时长时间不间断运行

内存消耗少:处理静态文件,同样起web 服务,比apache 占用更少的内存及资源,所以它是轻量级的

模块化程度高:Nginx是高度模块化的设计,编写模块相对简单,包括 gzipping, byte ranges, chunked responses,以及 SSI-filter 等 filter,支持 SSL 和 TLSSNI。

支持Rwrite重写规则:能够根据域名、URL的不同, 将HTTP请求分发到不同的后端服务器群组。

低成本:Nginx可以做高并发的负载均衡,且Nginx是开源免费的,如果使用F5等硬件来做负载均衡,硬件成本比较高。

支持多系统:Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows,由于Nginx是免费开源的,可以在各系统上编译并使用。

缺点
动态处理差:nginx处理静态文件好,耗费内存少,但是处理动态页面则很鸡肋,现在一般前端用nginx作为反向代理抗住压力,apache作为后端处理动态请求。

rewrite弱:虽然nginx支持rewrite功能,但是相比于Apache来说,Apache比nginx 的rewrite 强大。

2.nginx的安装

第一步:获得安装包
在官方网站下载源代码:编译安装开源版官网: nginx.org,商业版官网: nginx.com,我们在开源社区下载。

在这里插入图片描述
主线版本:“Mainline version”,也有人称之为主干版或者开发版,主线版本通常是最新的
版本,主线版通常会加入一些最新的功能,这些功能可能没有经过太多的测试,所以相对可
能不太稳定,在真正的生产环境中,通常不会使用主线版本。
稳定版本:“Stable version”,稳定版通常是由主线版发展而来的,稳定版通常是经过官方
测试的,是官方认为相对稳定的版本,生产环境中通常会使用稳定版。
历史版本:“Legacy version”,当新的稳定版出现,那么原先的稳定版就会被归类到"历史版本"中去。

在这里插入图片描述
目录的含义
conf目录中存放了nginx相关的配置文件
html目录是默认提供的web服务的"根目录"
CHANGES存放了此版本修复的bug,更新情况,新增的功能,CHANGES.ru是CHANGES的俄文版
src目录是源代码目录,man目录是帮助文档目录

第二步:编译安装nginx

1.执行./configure --help命令后,你可以看到很多选项信息,此处就不列出这些信息了
2.最常用的莫过于–prefix选项了,使用-prefix选项可以指定nginx编译安装的目录
3.除了一些常见的目录设置选项,你应该还会看到好多类似–with-XXX_ module或 --without-XXX_ module的选项,就是"模块"的概念,我们已经知道,nginx是高度模块化的,每个模块就代表一个功能,只有编译安装的方式才能指定安装哪些模块,不安装哪些模块。简单来说:–with-XXX_ module 选项表示指明安装对应的模块,–without-XXX_ module选项表示指明不安装对应的模块
4.如果你没有明确使用–with-AXX_ module 选项,那么默认情况下是不会安装"AXX模块"的
5.如果你没有明确使用–without-BXX_ module选项,那么默认情况下是会安装"BXX模块"的
6.能够使用–with-XXX_ module 和 --without-XXX_ module 控制的模块都是"可选模块",也就是说我们可以选择是否安装它们。除了这些"可选模块" ,还有- -些"标准模块"是默认安装到nginx中的,我们无法选择是否安装这些"标准模块"

./configure --prefix=/usr/local/nginx  --with-http_ssl_module

解决依赖性:yum install gcc openssl-devel pcre-devel -y

make 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值