课程概览
Nginx是一个开源的HTTP和反向代理服务器,同时也可以用于邮件代理服务器、负载均衡以及HTTP缓存。Nginx项目在一开始时,就定位于高并发、高性能以及低内存消耗的目标。它可以运行在Linux,,各类BSD系统, Mac OS X,Solaris,AIX,HP-UX 以及各类 *nix 操作系统。此外,它也提供了一个Windows版本,但仍处于原型阶段(参考链接)。根据Netcraft(全球知名的互联网服务咨询公司)的统计,截止到2014年三月,全球最大的网站中,大概有17.65%都使用了Nginx作为HTTP服务器或者代理服务器。
本课程会向你揭示Nginx的魔力。你将会学习到如何在各种软件平台上安装和配置Nginx,以及如何与Apache进行集成。
除此之外,你还会接触到像负载均衡、SSL配置以及Websockets代理等高级概念。
关于作者
Gabriel Canepa是一名来自阿根廷圣路易省梅塞德斯镇的Linux基金会认证系统管理员 (LFCS-1500-0576-0100) 及web开发者。他目前在一家全球领先的消费品公司工作,通过在工作中大量使用自由及开源(FOSS,Free and open-source software)工具,充分享受着它们所带来的工作效率提升。在工作与写作之余,他喜欢陪两个女儿在一起,与妻子一起给她们讲睡前故事,享受幸福的家庭生活。
Gabriel擅长于Linux系统管理、shell脚本、数据库管理(SQL Server, MySQL, Oracle 11g)、面向对象及过程变成(Python 和 PHP)、桌面应用程序开发(C#, Visual Basic, Excel with VBA)和web开发(jQuery, HTML5, CSS3, PHP)等领域。
他还曾作为一级TSR(技术支持代表),现场支持过一家大型跨国公司的WMS系统(运行Red Hat Enterprise Linux和Oracle 11g)的启动和日常操作。
课程介绍
在Linux上安装Nginx
在第一节课中,你将会了解如何在不同平台和环境中安装及配置Nginx。我为多个主流Linux发行版本都提供了安装指南,例如Debian Wheezy, Ubuntu 12.04 LTS 和 CentOS 6.4。此外,我还会解释如何激活各个模块,例如标准的HTTP、可选的HTTP以及邮件模块。最后,你将会了解如何将Nginx安装为一个系统服务,以便随操作系统一起启停。
Nginx配置指南(Ubuntu 12.04 LTS)
在本课中,你将会了解到Nginx配置的内部机制。你会熟悉Ngnix配置文件的语法和指令,以及如何组织和包含其他配置文件。随后,你会了解常用的基本模块,以及如何通过它们来定义Nginx的基础参数和配置。这些模块都是在Nginx编译时被自动构建到Nginx中的。最后,你会了解如何配置一个HTTP服务器和一个邮件服务器代理,以及虚拟主机。
Nginx和Apache(Ubuntu 12.04 LTS)
在本课中,我们将学习如何将Nginx于Apache web服务器集成起来。Nginx可以作为一个反向代理。在一个网络结构中,一个反向代理就是放置在客户端和服务端之间的一个设备或服务。我们将会了解如何对两个服务器进行正确的配置,以及如何进行细粒度的性能调优。
Nginx负载均衡(Ubuntu 12.04 LTS)
在本课中,我们将会了解如何通过Nginx来实现负载均衡。负载均衡是一种网络手段,将流量负载分发到多个计算资源上,例如多台服务器、服务器集群、网络链接、多个CPU,或者其他的硬件设备。通过Nginx,我们可以搭建一个7层的负载均衡(可以根据应用层协议(例如HTTP和FTP)中的数据来分发请求)。
Nginx SSL配置指南(Ubuntu 12.04 LTS)
在本课中,我们将关注于Nginx的SSL配置。SSL(Secure Socket Layer)协议的初衷是为了保证web服务器和浏览器(受保护页面)之间的安全传输。Nginx服务器可以支持SSL。我们将会了解如何创建、签名以及使用所需的证书,以及如何启用Nginx的SSL功能。
Nginx Websockets代理指南(Ubuntu 12.04 LTS)
在本课中,我们将关注于Nginx的Websockets代理功能。WebSocket是一个在单个TCP连接上提供全双工通信信道的协议,虽然设计之初是为了在浏览器和服务器之间使用,但它也可以用于任何客户端或服务端应用程序。Nginx从1.3.13版本起开始支持Websockets,并且已经被作为核心功能之一。为了更好的了解并测试该功能,我们将创建一个简单的Node.js应用程序。
Nginx总结(Ubuntu 12.04 LTS)
在最后一课中,我们将回顾之前课程中所介绍的一些Nginx的关键特性。