发表于2024-12-22
Nginx是目前备受关注的一个高性能HTTP和反向代理服务器,具有简单、灵活的配置和极高的执行效率。本书面向Linux运维方向的用户或具备某一类编程语言(C、PHP、Java)基础的读者,旨在使其快速掌握Nginx的配置与应用,学会搭建高性能的Web服务器。
全书分为8章,主要内容包括VMware虚拟机的使用、Linux入门、正则表达式、HTTP协议、Nginx安装与配置、访问控制、日志管理、虚拟主机、Web服务器搭建、反向代理、负载均衡、缓存以及一些常用模块和应用(包括调试输出、网页压缩、重写、重定向、防盗链、HTTPS等)。第8章还着重介绍了Nginx的配置优化、LNMP分布式集群和高可用方案的部署,目的是帮助读者将Nginx应用到复杂的服务器架构中,对所学知识进行巩固和提高。
本书是一本Nginx的入门书籍,适合作为高等院校本、专科计算机相关专业的教材,也可作为Nginx爱好者的参考书。
第1章Nginx开篇1
1.1Nginx简介1
1.1.1Web服务器1
1.1.2Nginx概述2
1.2Linux操作系统3
1.2.1Linux的起源与发展3
1.2.2获取Linux系统4
1.3VMware虚拟机5
1.3.1什么是虚拟机5
1.3.2VMware安装CentOS6
1.3.3VMware快照功能11
1.3.4VMware克隆功能12
本章小结13
课后练习14
第2章基础知识15
2.1Linux入门15
2.1.1基本命令15
2.1.2目录结构18
2.1.3shell和终端19
2.1.4文件管理23
2.1.5vi编辑器26
2.1.6用户和权限29
2.2正则表达式36
2.2.1正则表达式概述36
2.2.2正则表达式入门37
2.2.3正则表达式语法规则39
2.2.4正则表达式应用案例42
2.3HTTP协议43
2.3.1HTTP概述43
2.3.2HTTP消息44
2.3.3HTTP请求消息46
2.3.4HTTP响应消息49
本章小结51
课后练习51
目录Nginx高性能Web服务器实战教程第3章Nginx的安装53
3.1Linux服务器搭建53
3.1.1最小化安装CentOS53
3.1.2网络配置58
3.1.3远程终端访问64
3.1.4安装必备软件68
3.2Linux环境下安装Nginx70
3.2.1获取Nginx70
3.2.2编译安装Nginx71
3.2.3Nginx的启动与停止74
3.2.4访问测试76
3.2.5后续操作77
3.3Windows环境下使用Nginx82
本章小结84
课后练习84
第4章Nginx基本配置86
4.1认识配置文件86
4.1.1配置文件结构86
4.1.2设置用户和组88
4.1.3自定义错误页90
4.2访问控制93
4.2.1权限控制指令93
4.2.2访问控制典型应用97
4.3日志文件101
4.3.1访问日志101
4.3.2错误日志104
4.3.3日志文件切割105
4.4虚拟主机107
4.4.1什么是虚拟主机107
4.4.2基于端口号配置虚拟主机107
4.4.3基于IP配置Nginx虚拟主机110
4.4.4基于域名配置虚拟主机113
4.4.5设置目录列表115
4.4.6子配置文件的引入117
本章小结119
课后练习119
第5章Web服务器搭建120
5.1Nginx+PHP环境120
5.1.1PHP的安装与使用120
5.1.2PHP与Nginx整合124
5.2Nginx+Apache环境132
5.2.1Apache的安装与使用132
5.2.2Apache的基本配置137
5.2.3Apache与PHP整合141
5.2.4Nginx+Apache动静分离143
5.3Nginx+Tomcat环境146
5.3.1Tomcat的安装与使用146
5.3.2Nginx+Tomcat动静分离150
5.4OpenResty环境150
5.4.1OpenResty的安装与使用151
5.4.2OpenResty开发入门153
本章小结156
课后练习156
第6章负载均衡与缓存158
6.1反向代理158
6.1.1代理与反向代理158
6.1.2反向代理服务配置159
6.2负载均衡162
6.2.1什么是负载均衡162
6.2.2负载均衡的配置163
6.3缓存配置168
6.3.1缓存实现原理169
6.3.2永久缓存配置169
6.3.3临时缓存配置171
6.3.4缓存清理配置174
6.4邮件服务177
6.4.1Nginx实现邮件服务178
6.4.2邮件服务配置178
本章小结181
课后练习181
第7章模块配置应用182
7.1模块概述182
7.1.1模块化结构设计182
7.1.2Nginx模块分类及作用182
7.1.3Nginx手册的使用184
7.2调试输出186
7.2.1调试输出的配置186
7.2.2常见的应用案例188
7.3查看响应状态与替换响应内容192
7.3.1安装所需模块192
7.3.2查看网站响应状态193
7.3.3替换网站响应内容193
7.4网页压缩传输195
7.4.1gzip压缩技术195
7.4.2网页压缩传输配置195
7.5重写与重定向198
7.5.1rewrite模块的简介198
7.5.2rewrite实现重写199
7.5.3rewrite实现重定向201
7.6防盗链的配置202
7.6.1图片防盗链202
7.6.2下载防盗链205
7.7配置HTTPS网站208
7.7.1什么是HTTPS208
7.7.2颁发认证证书208
7.7.3配置HTTPS网站211
本章小结212
课后练习212
第8章高可用负载均衡集群214
8.1Nginx配置优化214
8.1.1连接数优化214
8.1.2客户端请求限制217
8.1.3浏览器缓存优化219
8.2LNMP分布式集群220
8.2.1什么是集群220
8.2.2LNMP分布式部署221
8.2.3搭建NFS文件服务器229
8.2.4搭建MySQL数据库服务器234
8.2.5搭建Memcached缓存服务器238
8.2.6ThinkPHP项目部署241
8.3Nginx+Keepalived高可用方案247
8.3.1高可用方案概述247
8.3.2安装和配置Keepalived服务248
8.3.3使用Keepalived监控Nginx服务251
本章小结253
课后练习253
第5章Web服务器搭建学习目标
�r掌握Nginx+PHP环境的搭建和配置;
�r掌握Nginx与Apache、Tomcat实现动静分离;
�r掌握OpenResty环境的搭建与使用。Nginx的主要用途是作为Web服务器使用,目前最典型的应用是与PHP、Tomcat、MySQL等软件组成动态网站平台。本章将讲解Nginx与各种软件组成的Web服务器环境如何搭配,包括各种软件的安装与配置,以及基于Nginx+Lua的高性能Web平台OpenResty的安装与使用。
5.1Nginx+PHP环境〖*2〗5.1.1PHP的安装与使用PHP(HypertextPreprocessor,超文本预处理器)是一种运行于服务器端的嵌入式脚本编程语言,具有开源免费、易学易用、开发效率高等特点,是Web应用开发的主流语言之一。目前由LAMP(Linux、Apache、PHP、MySQL)组成的平台现已被大量应用在网站系统的搭建中。
在LAMP环境中,Apache作为Web服务器与客户端浏览器交互,PHP负责处理复杂的网站业务逻辑需求,MySQL负责存储和管理网站的数据库。而后起之秀的Nginx,在Web服务器功能方面可以取代Apache组成LNMP平台。关于整体的LNMP平台会在后面的章节中详细讲解,本节重点介绍Nginx与PHP的整合,从而形成一个基本的动态网站运行环境。
1.获取PHP
在PHP的官方网站http://php.net可以获取PHP源代码的下载地址,如图5��1所示。目前PHP官方网站发布了5.6和7.0两种版本,其中5.6具有很强的兼容性,而7.0具有优越的性能。
图5��1PHP网站首页
本书选择以PHP5.6.27版本进行讲解,在网站中找到php��5.6.27.tar.gz压缩包的下载地址,下载到Linux服务器中。使用tar�瞶xvf命令进行解压,然后查看解压后的文件列表,如图5��2所示。第5章Web服务器搭建Nginx高性能Web服务器实战教程图5��2PHP解压后的文件列表
2.编译安装PHP
从解压后的目录中可以看出,PHP提供configure程序用于编译安装。使用./configure�勃瞙elp命令可以查看详细的编译选项,也可以查看PHP官方手册。对于一般用户来说,无须彻底明白这些编译选项的作用,只需了解几个常用选项即可安装使用,具体如表5��1所示。表5��1PHP5.6常用编译选项
选项说明�勃瞤refix安装目录,默认目录为/usr/local,也可以设为/usr/local/php�勃瞖nable�瞗pm开启PHP的FPM功能,提供PHPFastCGI管理器�勃瞱ith�瞶lib包含zlib库,支持数据压缩和解压缩�勃瞖nable�瞶ip开启ZIP功能�勃瞖nable�瞞bstring开启mbstring功能,用于多字节字符串处理续表
选项说明�勃瞱ith�瞞crypt包含mcrypt加密支持(依赖libmcrypt)�勃瞱ith�瞞ysql包含MySQL数据库访问支持�勃瞱ith�瞞ysqli包含增强版的MySQL数据库访问支持�勃瞱ith�瞤do�瞞ysql包含基于PDO(PHPDataObject)的MySQL数据库访问支持�勃瞱ith�瞘d包含GD库支持,用于PHP图像处理�勃瞱ith�瞛peg�瞕ir包含JPEG图像格式处理库(依赖libjpeg�瞕evel)�勃瞱ith�瞤ng�瞕ir包含PNG图像格式处理库(依赖libpng�瞕evel)�勃瞱ith�瞗reetype�瞕ir包含FreeType字体图像处理库(依赖freetype�瞕evel)�勃瞱ith�瞔url包含curl支持(依赖curl�瞕evel)�勃瞱ith�瞣penssl包含OpenSSL支持(依赖openssl�瞕evel)�勃瞱ith�瞞hash包含mhash加密支持�勃瞖nable�瞓cmath开启精准计算功能�勃瞖nable�瞣pcache开启opcache功能,一种PHP的代码优化器在上述编译选项中,有些选项的前缀是enable,有些是with,其区别在于enable选项用于开启PHP的一些内置的功能,而with选项依赖于系统中的共享库,如果系统中没有则需要安装依赖包。
表5��1中列举的是运行PHP大部分成熟项目所需要的扩展。在实际使用时,用户也可以根据需要自行定制。推荐读者在学习阶段选择典型的扩展,并安装所需的依赖包。下面介绍详细的安装步骤。
1)通过yum安装依赖
PHP的大部分依赖可以通过yum自动安装。具体命令如下。[root@localhost~]#yum-yinstalllibxml2-developenssl-devel\
curl-devellibjpeg-devellibpng-develfreetype-devel
其中,libxml2�瞕evel是PHP编译安装所必需的依赖包,其余的是PHP各种扩展的依赖包。
序言
传智播客和“黑马程序员”江苏传智播客教育科技股份有限公司(简称传智播客)是一家专门致力于高素质软件开发人才的科技公司,“黑马程序员”是传智播客旗下高端IT教育品牌。
“黑马程序员”的学员多为大学毕业后想从事IT行业,但各方面条件还不成熟的年轻人。“黑马程序员”的学员筛选制度非常严格,包括严格的技术测试、自学能力测试,还包括性格测试、压力测试、品德测试等。百里挑一的残酷筛选制度确保了学员质量,并降低了企业的用人风险。
自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程,不断在产、学、研三个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,有针对性地出版计算机教材五十多种,制作教学视频数十套,发表各类技术文章数百篇。
“黑马程序员”不仅研发IT系列教材,还为高校师生提供以下配套学习资源与服务。
为大学生提供的配套服务:
�r专注的辅学平台“博学谷”(http://yx.boxuegu.com),专业老师在线为您答疑解惑。
�r针对高校学生在学习过程中存在的压力等问题,我们还为大学生量身打造了“播妞”。“播妞”不仅致力推行快乐学习,还有定期的助学红包雨(“播妞”微信/QQ:208695827)。
�r高校学生也可扫描右方二维码,加入“播妞”粉丝团,获取最新学习资源,与“播妞”一起快乐学习。
为IT教师提供的配套服务:
针对高校教学,“黑马程序员”为IT系列教材精心设计了“教案+授课资源+考试系统+题库+教学辅助案例”的系列教学资源,高校老师请关注码大牛老师微信/QQ:2011168841,获取教材配套资源,也可以扫描右方二维码,加入专为IT教师打造的师资服务平台——“教学好助手”,获取“黑马程序员”最新教师教学辅助资源及相关动态。
前言
Nginx自从发布以来,在世界范围内受到越来越多的关注。由于其稳定性好、功能丰富、占用内存少、并发能力强等优势,在同类型的服务器中表现出色。一些大型网站如百度、京东、新浪、网易、腾讯、淘宝等都已经在内部广泛使用。因此,对于这款高性能、轻量级的HTTP和反向代理服务器,如何能够快速、系统地了解并掌握它的应用,成为初学者的迫切需求。
为什么要学习本书
本书针对的是以Linux运维为方向或具备某一类开发语言(如C、PHP、Java等)基础的读者。全书围绕Nginx功能使用以及重点配置案例展开,并铺垫了Linux服务器、正则表达式、HTTP等方面的基础知识,适合想要快速掌握Nginx的初学者。
教材遵循学习的难易度及先后顺序来安排章节顺序,按照“概念讲解+案例演示”的方法来设计课程内容,将抽象的概念具体化,学到的知识实践化,让读者不仅理解知识内容,还能根据实际需求进行分析和处理,达到学以致用、学用结合的效果。
如何使用本书
本书的主要内容包括VMware虚拟机、Linux系统、正则表达式、HTTP协议、Nginx安装与配置、Web服务器搭建、反向代理、负载均衡、缓存,以及Nginx常用模块的使用、Nginx配置优化、LNMP分布式集群、Nginx+Keepalived高可用方案等。
全书共分为8章:
�r第1章主要讲解常见的Web服务器、Linux系统以及VMware虚拟机的使用,通过本章学习,读者可以了解一些基本概念,并能够搭建一个实验环境。
�r第2章讲解Linux入门、正则表达式和HTTP协议,这些是学习Nginx必备的基础知识,只有掌握这些内容,才能够在Nginx使用过程中得心应手。
�r第3章讲解Nginx的安装和服务器环境的配置,主要包括网络和防火墙配置、远程终端的使用、服务脚本的编写、软件的安装等。通过本章的学习,读者能够掌握在最小方式安装的CentOS系统中编译安装Nginx,并对服务器进行管理和维护。
�r第4章讲解Nginx服务器的基本配置,认识Nginx配置文件并了解一些基本指令的作用。通过具体案例实现了访问控制、日志管理和各种类型虚拟主机。
�r第5章介绍Web服务器的搭建,包括Nginx与PHP、Apache、Tomcat等软件的组合搭配,以及基于Nginx+Lua的高性能Web开发平台OpenResty环境的使用。
�r第6章讲解反向代理、负载均衡、缓存配置以及邮件服务,为读者展示了如何解决大型网站多台服务器之间协同工作的问题,以便提高计算机系统的处理能力、计算速度,从而满足业务量的需求。
�r第7章从模块的角度介绍Nginx相关应用,包括调试输出、查看响应状态、替换响应内容、网页压缩传输、重写、重定向、防盗链、HTTPS等配置。通过本章的学习,读者能够掌握根据具体需求来对Nginx进行不同的模块编译和配置。
�r第8章主要讲解Nginx配置优化、LNMP分布式集群以及Nginx+Keepalived高可用方案的部署。本章是对Nginx的综合应用和提升,从整体服务器架构上满足大型网站对高并发、高负载和高可用的需求。
在上面所列举的8章中,第1~3章是基础课程,主要帮助初学者掌握扎实的基本功;第4、6、7章是Nginx的重点课程,讲解Nginx的基本配置、常用模块和典型应用;第5、8章是动手实战课程,涉及Apache、Tomcat、OpenResty、PHP、MySQL、Memcached、NFS、Keepalived等多种软件和服务的搭建与配置,这部分内容比较复杂,希望读者细心阅读,灵活运用VMware虚拟机的快照和克隆功能,认真完成每个操作步骤。
在学习过程中,读者一定要亲自实践教材中演示的案例。如果不能完全理解书中所讲知识,读者可以登录博学谷平台,通过平台中的教学视频进行深入学习。读者在学习完一个知识点后,要及时在博学谷平台上进行测试,以巩固学习内容。
另外,如果读者在理解知识点的过程中遇到困难,建议不要纠结于某个地方,可以先往后学习。通常来讲,通过逐渐的学习,对于前面不懂和疑惑的知识也能够理解。在学习Nginx的过程中,一定要多多动手实践,如果在实践的过程中遇到问题,建议多思考,理清思路,认真分析问题发生的原因,并在问题解决后及时总结经验。
致谢
本书的编写和整理工作由传智播客教育科技股份有限公司的黑马程序员完成,主要参与人员有吕春林、韩冬、乔治铭、高美云、陈欢、马丹、王哲、李东超、韩振国、王金涛等,全体参编人员在这近一年的编写过程中付出了很多辛勤的劳动,特此表示衷心的感谢。
意见反馈
尽管我们付出了最大的努力,但教材中难免会有不妥之处,欢迎各界专家和读者朋友们来信、来函给予宝贵意见,我们将不胜感激。您在阅读本书时,如发现任何问题或有不认同之处可以通过电子邮件与我们取得联系。请发送电子邮件至:itcast_book@vip.sina.com。前言Nginx高性能Web服务器实战教程
黑马程序员
2017年4月
Nginx高性能Web服务器实战教程 下载 mobi pdf epub txt 电子书 格式 2024
Nginx高性能Web服务器实战教程 下载 mobi epub pdf 电子书适合小白入门!
评分黑马程序员的书,质量不错。我买了好好看。
评分东西不错物美价廉值得购买!
评分哈哈哈红红火火恍恍惚惚
评分讲的挺详细的
评分买了一堆,还没看
评分不错的教程。
评分适合小白入门!
评分好书看起来很舒服
Nginx高性能Web服务器实战教程 mobi epub pdf txt 电子书 格式下载 2024