微信扫一扫,移动浏览光盘
简介
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服务器搭建学习目标? 掌握Nginx PHP环境的搭建和配置;? 掌握Nginx与Apache、Tomcat实现动静分离;? 掌握OpenResty环境的搭建与使用。Nginx的主要用途是作为Web服务器使用,目前*典型的应用是与PHP、Tomcat、MySQL等软件组成动态网站平台。本章将讲解Nginx与各种软件组成的Web服务器环境如何搭配,包括各种软件的安装与配置,以及基于Nginx Lua的高性能Web平台OpenResty的安装与使用。5.1Nginx PHP环境〖*2〗5.1.1PHP的安装与使用PHP(Hypertext Preprocessor,超文本预处理器)是一种运行于服务器端的嵌入式脚本编程语言,具有开源免费、易学易用、开发效率高等特点,是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网站首页本书选择以PHP 5.6.27版本进行讲解,在网站中找到php?5.6.27.tar.gz压缩包的下载地址,下载到Linux服务器中。使用tar ?zxvf命令进行解压,然后查看解压后的文件列表,如图5?2所示。第5章Web服务器搭建Nginx高性能Web服务器实战教程图5?2PHP解压后的文件列表2. 编译安装PHP从解压后的目录中可以看出,PHP提供configure程序用于编译安装。使用./configure ??help命令可以查看详细的编译选项,也可以查看PHP官方手册。对于一般用户来说,无须彻底明白这些编译选项的作用,只需了解几个常用选项即可安装使用,具体如表5?1所示。表5?1PHP5.6常用编译选项选项说明??prefix安装目录,默认目录为/usr/local,也可以设为/usr/local/php??enable?fpm开启PHP的FPM功能,提供PHP FastCGI管理器??with?zlib包含zlib库,支持数据压缩和解压缩??enable?zip开启ZIP功能??enable?mbstring开启mbstring功能,用于多字节字符串处理续表选项说明??with?mcrypt包含mcrypt加密支持(依赖libmcrypt)??with?mysql包含MySQL数据库访问支持??with?mysqli包含增强版的MySQL数据库访问支持??with?pdo?mysql包含基于PDO(PHP Data Object)的MySQL数据库访问支持??with?gd包含GD库支持,用于PHP图像处理??with?jpeg?dir包含JPEG图像格式处理库(依赖libjpeg?devel)??with?png?dir包含PNG图像格式处理库(依赖libpng?devel)??with?freetype?dir包含FreeType字体图像处理库(依赖freetype?devel)??with?curl包含curl支持(依赖curl?devel)??with?openssl包含OpenSSL支持(依赖openssl?devel)??with?mhash包含mhash加密支持??enable?bcmath开启精准计算功能??enable?opcache开启opcache功能,一种PHP的代码优化器在上述编译选项中,有些选项的前缀是enable,有些是with,其区别在于enable选项用于开启PHP的一些内置的功能,而with选项依赖于系统中的共享库,如果系统中没有则需要安装依赖包。表5?1中列举的是运行PHP大部分成熟项目所需要的扩展。在实际使用时,用户也可以根据需要自行定制。推荐读者在学习阶段选择典型的扩展,并安装所需的依赖包。下面介绍详细的安装步骤。1) 通过yum安装依赖PHP的大部分依赖可以通过yum自动安装。具体命令如下。\[root@localhost ~\]# yum -y install libxml2-devel openssl-devel \\curl-devel libjpeg-devel libpng-devel freetype-devel其中,libxml2?devel是PHP编译安装所必需的依赖包,其余的是PHP各种扩展的依赖包。2) 安装libmcrypt依赖目前yum中没有libmcrypt,需要手动下载安装。libmcrypt的源代码可以在开源软件平台 SourceForge网站中获取,项目地址是https://sourceforge.net/projects/mcrypt,下载后按照如下命令安装即可。\[root@localhost ~\]# tar -zxvf libmcrypt-2.5.8.tar.gz\[root@localhost ~\]# cd libmcrypt-2.5.8\[root@localhost libmcrypt-2.5.8\]# ./configure\[root@localhost libmcrypt-2.5.8\]# make && make install3) 安装PHP在完成各种依赖包的安装后,接下来开始编译安装PHP。具体操作步骤如下。\[root@localhost ~\]# cd php-5.6.27\[root@localhost php-5.6.27\]# ./configure --prefix=/usr/local/php --enable-fpm \\--with-zlib --enable-zip --enable-mbstring --with-mcrypt --with-mysql \\--with-mysqli --with-pdo-mysql --with-gd --with-jpeg-dir --with-png-dir \\--with-freetype-dir --with-curl --with-openssl --with-mhash --enable-bcmath \\--enable-opcache\[root@localhost php-5.6.27\]# make && make install上述命令执行成功后安装结果如图5?3和图5?4所示。图5?3PHP编译前的配置图5?4PHP编译安装3. PHP的简单使用在Linux系统中安装PHP后即可通过命令的方式来使用,用户也可以将PHP代码写在.php脚本文件中,由PHP程序执行。下面分别介绍两种方式的使用方法。1) 通过.php文件执行PHP代码编写.php文件是在PHP网站开发领域使用*多的方法,通常一个完整的PHP网站项目会由成百上千个.php文件组成,其代码遵循PHP语言的语法。为了测试安装后的PHP是否能够正常运行,接下来编写一个基本的Hello World程序。执行vi ~/test.php命令新建文件,编写PHP代码如下。<?phpecho "Hello World !\\n";?>在上述代码中,开始和结束的<?php ?>是PHP的标记。PHP是嵌入到HTML中的语言,需要将PHP代码写在标记内,而标记外面可以写HTML内容。第2行代码中的echo语句用于输出内容,后面是一个双引号字符串,*后以分号结束。字符串中的\\n是一个用转义字符方式表示的换行符。将文件保存后,利用PHP安装目录下的可执行程序来执行.php文件,具体命令如下。\[root@localhost ~\]# /usr/local/php/bin/php -f test.phpHello World !从上述结果可以看到,PHP成功执行了test.php文件,输出Hello World !运行结果。其中选项?f表示执行给定的PHP脚本文件。2) 直接执行PHP代码通过./php ?r的方式可以将PHP代码直接交给PHP程序执行,具体示例如下。\[root@localhost ~\]# cd /usr/local/php/bin\[root@localhost bin\]# ./php -r 'echo 100 200,"\\n";'300从上述执行结果可以看出,PHP输出给定代码中的表达式100 200的计算结果300。关于PHP编程语言的详细语法,这里不再展开讲解,读者可以参考其他资料进行学习。PHP是Web开发的常用语言,使用非常方便,本书后面的一些示例中也会用到PHP语言进行演示。5.1.2PHP与Nginx整合〖*2〗1. 认识FastCGI实现PHP与Nginx的整合,离不开FastCGI。对于Nginx而言,PHP是一个外部程序,而非Nginx内部的一个模块。由于Linux平台下可以有多种不同的Web服务器和应用程序,为了让Web服务器的功能扩展性更强,就需要支持CGI(Common Gateway Interface,公共网关接口)规范。CGI是Web服务器与外部程序(即CGI程序)之间的接口标准,用于两种不同程序之间的信息传递。CGI规范允许Web服务器根据浏览器请求调用CGI程序,并将其输出结果通过响应发送给浏览器,从而使Web服务器支持处理复杂的网站业务需求。Web服务器支持CGI的意义不在于性能而在于开发速度。例如,一个功能复杂且需求多变的网站,如果用Nginx模块(基于C语言)的方式来开发成本将非常高,而PHP这样的CGI程序就是为快速开发而设计的,虽然有性能损失,但其带来的好处远远大于这些损失。图5?5演示了Web服务器和CGI程序的工作流程,开发者只需要编写一个CGI文件放在网站目录中,当浏览器请求CGI文件时,Web服务器就会调用CGI程序执行CGI文件,等待CGI程序处理完成后,再将程序的输出结果返回给浏览器。
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问