第1部分
Nginx与PHP
要将Nginx和PHP结合,让Nginx解析静态网页,而PHP的动态网页交给PHP处理。解决方法从大的方向有两类:(从Nginx角度来讲)一类是使用Nginx的代理模块,而另外一类则是使用FastCGI模块。而从PHP角度来讲则是FastCGI进程,它的方法有三种:一种是以php-fpm方式运行,第二种是PHP自带的fastcgi server,第三种就是借助lighttpd带的spawn-fcgi(听起来有点龌龊,但是确实可行,有时候还必须使用这种方法)。
目前最新的PHP版本是5.3.4,PHP与Nginx的结合主要靠两个方面,即服务器端和客户端。服务器端使用的是FastCGI模块,FastCGI从请求的角度应该叫“客户端”;而客户端使用的是php-fpm,从响应的角度它却应该叫“服务器端”,它们之间通信的协议就是FastCGI协议。示意图如下:
……
第1部分 Nginx与PHP
第1章 环境部署
1.1 php-fpm的安装与测试
1.1.1 下载并安装PHP
1.1.2 启动php-fpm
1.2 php-fpm的目录结构
1.2.1 etc/目录
1.2.2 bin/目录
1.2.3 sbin/目录
1.2.4 php-fpm命令
1.3 管理php-fpm
1.3.1 编写init启动脚本
1.3.2 添加init启动
1.4 认识FastCGI模块
1.4.1 配置示例
1.4.2 指令
1.4.3 变量
1.4.4 fastcgi_cache与fastcgi-store的区别
1.4.5 被传递到FastCGI服务器的参数
1.5 与FastCGI模块相关的配置文件
1.5.1 配置文件fastcgi.conf和fastcgi_params
1.5.2 配置文件fastcgi.conf和fastcgi_params的关系
1.6 Nginx和PHP的结合
第2章 PHP访问Memcached
2.1 第一个实例
2.1.1 安装memcache
2.1.2 memcache提供的方法
2.1.3 测试memcache
2.1.4 使用memcache.php
2.1.5 安装memcached
2.1.6 memcached提供的方法
2.1.7 测试memcached
2.2 第二个实例
2.2.1 写入Memcached的Nginx配置
2.2.2 访问测试及日志分析
2.3 手动清除Memcached缓存
2.3.1 基于命令行方式清除Memcached缓存
2.3.2 基于应用程序的方式清除Memcached缓存
第3章 php-fpm的状态
3.1 添加设置
3.2 访问测试
第2部分 Nginx与Python
第4章 uWSGI服务器
4.1 uwsgi协议
4.1.1 uwsgi数据包头
4.1.2 uwsgi数据包的类型
4.1.3 uwsgi的变量
4.2 uWSGI服务器
4.2.1 uWSGI服务器的功能
4.2.2 uWSGI服务器的配置选项
4.2.3 uWSGI服务器配置文件的格式
4.2.4 使用UDP方式来处理uWSGI的日志
4.2.5 用于记录日志的ZeroMQ
4.2.6 Emperor模式
4.2.7 在worker之间共享数据:共享内存
4.2.8 uWSGI 缓存架构
4.2.9 uWSGI 队列管理器
4.2.10 嵌入式SNMP服务器
4.2.11 uWSGI集群平台
4.2.12 uWSGI 订阅系统
4.2.13 uWSGI的异步(async)模式
4.2.14 uWSGI 虚拟主机模式
4.2.15 模块别名的使用
4.2.16 uGreen的使用
4.2.17 uwsgi协议的变量
4.2.18 管理标志位
4.2.19 运行在Nginx后的uWSGI
第5章 Nginx的uwsgi模块
5.1 示例配置
5.2 指令
5.3 传递到uWSGI服务器的参数
5.4 使用配置
第6章 环境部署
6.1 安装Nginx
6.1.1 下载ngx_cache_purge模块
6.1.2 安装Nginx及ngx_cache_purge模块
6.2 安装Python
第7章 实例运行
7.1 实例1:运行开发服务器
7.1.1 创建项目
7.1.2 添加应用
7.2 实例2:以uWSGI方式运行
7.2.1 编写helloworld模块
7.2.2 修改Nginx配置文件
7.2.3 启动uWSGI服务器
7.3 实例3:使用Django框架
7.3.1 编写wsgi.py模块
7.3.2 命令行执行uWSGI服务器启动
7.4 实例4:一个uWSGI实例实现对多个虚拟主机的支持
7.4.1 下载并安装setuptools工具
7.4.2 安装VirtualEnv
7.5 实例5:分别监听在不同端口上的两个uWSGI实例
7.6 实例6:针对Nginx uwsgi模块应用举例的一个具体实现
7.7 实例7:集群的实现
7.8 实例8:会话存储
7.8.1 第一种情况:使用基于数据库的方式
7.8.2 第二种情况:使用基于Memcached的方式
7.8.3 第三种情况:同时使用数据库和Memcached
第8章 缓存
8.1 环境搭建
8.2 Django的缓存
8.2.1 相关的选项
8.2.2 缓存方式
8.2.3 缓存策略
8.2.4 关于中间件
8.3 缓存的实现
8.3.1 基于Memcached服务器作为缓存的具体实施
8.3.2 基于本地内存作为后端缓存的实施
8.3.3 基于上游服务器缓存的实施
8.4 模块cache_purge
第9章 会话
9.1 启用会话功能
9.2 配置存储会话引擎
9.2.1 使用后台数据库存储会话
9.2.2 与数据库相关的选项设置
9.2.3 使用缓存存储会话
9.2.4 使用基于文件的缓存
9.3 会话的使用
9.3.1 在视图中使用会话
9.3.2 在视图之外使用会话
9.3.3 使用Session 对象指南
9.4 测试客户端浏览器是否接受cookie
9.5 保存会话的时机
9.6 清除会话表
9.7 浏览器关闭会话与持久会话
9.8 与会话相关的设置选项
第3部分 Nginx与Perl
第10章 Nginx提供Perl CGI访问CGI的实现
10.1.1 方法1
10.1.2 方法2
10.1.3 使用perlinfo.cgi
10.1.4 启动脚本
10.1.5 部署应用
第11章 Nginx与Perl FastCGI
11.1 Perl FastCGI的相关安装
11.2 Nginx和Perl的结合
11.2.1 三种结合方式
11.2.2 访问测试
11.2.3 缓存清除
11.3 Perl访问Memcached
11.3.1 通过Cache::Memcached方式
11.3.2 通过Cache::Memcached::Fast方式
11.3.3 Memcached::libmemcached方式
11.3.4 通过Cache::Memcached::libmemcached方式
第12章 Nginx通过内置的Perl模块执行Perl程序
第4部分 Nginx与Java
第13章 环境部署
13.1 下载并安装JDK
13.2 下载并安装Tomcat
13.3 Tomcat的目录结构
13.3.1 bin/目录
13.3.2 conf/目录
13.3.3 logs/目录
13.3.4 work/目录
13.3.5 lib/目录
13.3.6 temp/目录
13.3.7 webapps/目录
13.4 管理Tomcat
13.4.1 使用jsvc
13.4.2 分析Tomcat7.sh文件
13.4.3 使用catalina.sh
第14章 Nginx与Tomcat的结合
14.1 配置示例
14.2 指令
14.3 变量
14.4 使用配置
第15章 配置server.xml文件
15.1 第一部分:XML信息
15.2 第二部分:server元素
15.3 第三部分:Listener元素监听器的设置
15.3.1 Listener的属性
15.3.2 Listener的标准执行
13.4 第四部分:全局命名资源设定
15.4.1 Environment元素
15.4.2 Resource元素
15.4.2 Resource Links元素
15.5 第五部分:Service元素
15.6 第六部分:线程
15.7 第七部分:连接器Connector
15.7.1 第一种连接器:HTTPConnector
15.7.2 第二种连接器:AJPConnector
15.8 第八部分:Engine的设定
15.8.1 Engine的属性
15.8.2 嵌套的组件
15.9 第九部分:集群的设定
15.9.1 文件server.xml的原始配置
15.9.2 集群配置文件
15.9.3 Cluster元素
15.9.4 Cluster元素可嵌套的元素
15.9.5 Cluster元素的属性
15.9.6 Cluster Manager元素
15.9.7 Channel元素的属性
15.9.8 Cluster/Valve 元素
15.9.9 Cluster /Deployer元素
15.9.10 ClusterListener元素
15.9.11 emcachedBackupSessionManager配置属性
15.9.12 nginx-upstream-jvm-route模块
15.10 第十部分:认证域
15.10.1 JDBC Database Realm
15.10.2 DataSource DatabaseRealm
15.10.3 JNDI Directory Realm
15.10.4 Memory Based Realm
15.10.5 UserDatabase Realm
15.10.6 JAAS Realm
15.10.7 Combined Realm
15.10.8 LockOut Realm
15.11 第十一部分:虚拟主机
15.11.1 Tomcat与Nginx的结合
15.11.2 Host元素的属性
本书涵盖现有流行动态语言(PHP、Python、Perl、Java、Ruby 和 ASP.NET)与Nginx服务器的结合,通过在生产环境中的具体应用,详细讲述了每一种应用服务器(包括开发架构)的多种不同结合方式。另外,本书详细讲述了应用程序服务器的缓存技术,特别是对Memcached服务器的应用。