《实战Nginx 取代Apache的高性能Web服务器》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:张宴编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2010
  • ISBN:9787121102479
  • 页数:319 页
图书介绍:Nginx是俄罗斯人Igor Sysoev编写的一款高性能的HTTP和反向代理服务器。Nginx选择了epoll和kqueue作为网络I/O模型,在高连接并发的情况下,内存、CPU等系统资源消耗非常低,运行稳定。本书系统地介绍了Nginx与PHP、RUBY、Python结合的使用方法,Nginx作为反向代理与负载均衡的配置与优化,以及Nginx模块的开发方法,并给出了新浪播客、搜狐博客、六间房、Discuz!官方论坛、迅雷在线、赶集网使用Nginx的应用示例。

第1部分 基础篇 1

第1章 Nginx简介 3

1.1 常用的Web服务器简介 3

1.1.1 Apache服务器 3

1.1.2 Lighttpd服务器 4

1.1.3 Tomcat服务器 4

1.1.4 IBM WebSphere服务器 4

1.1.5 Microsoft IIS 4

1.2 Nginx的发展 5

1.3 选择Nginx的理由 6

1.3.1 它可以高并发连接 6

1.3.2 内存消耗少 7

1.3.3 成本低廉 9

1.3.4 其他理由 9

1.4 Nginx与Apache、Lighttpd的综合对比 10

第2章 Nginx服务器的安装与配置 11

2.1 安装Nginx服务器所需要的系统资源 11

2.2 Nginx的下载 12

2.3 Nginx的安装 12

2.3.1 Nginx在Windows环境下的安装 13

2.3.2 Nginx在Linux环境下的安装 13

2.4 Nginx的启动、停止、平滑重启 17

2.4.1 Nginx的启动 17

2.4.2 Nginx的停止 17

2.5 Nginx的平滑重启 18

2.6 Nginx的信号控制 19

2.7 Nginx的平滑升级 19

第2部分 进阶篇 21

第3章 Nginx的基本配置与优化 23

3.1 Nginx的完整配置示例 23

3.2 Nginx的虚拟主机配置 26

3.2.1 什么是虚拟主机 26

3.2.2 配置基于IP的虚拟主机 26

3.2.3 配置基于域名的虚拟主机 30

3.3 Nginx的日志文件配置与切割 31

3.3.1 用log_format指令设置日志格式 32

3.3.2 用access_log指令指定日志文件存放路径 33

3.3.3 Nginx日志文件的切割 35

3.4 Nginx的压缩输出配置 36

3.5 Nginx的自动列目录配置 36

3.6 Nginx的浏览器本地缓存设置 37

第4章 Nginx与PHP(FastCGI)的安装、配置与优化 39

4.1 获取相关开源程序 41

4.2 安装PHP 5.2.10(FastCGI模式) 43

4.3 安装Nginx 0.8.15 54

4.4 配置开机自动启动Nginx+PHP 57

4.5 优化Linux内核参数 57

4.6 在不停止Nginx服务的情况下平滑变更Nginx配置 58

4.7 编写每天定时切割Nginx日志的脚本 59

第5章 Nginx与JSP、ASP.NET、Perl的安装与配置 61

5.1 Nginx与JSP(Tomcat)在Linux上的安装、配置 61

5.1.1 Tomcat和JDK的安装 62

5.1.2 Nginx与Tomcat的配置 63

5.2 Nginx与ASP.NET(Mono+FastCGI)在Linux上的安装、配置 64

5.2.1 Mono的安装 65

5.2.2 Nginx与ASP.NET(Mono+FastCGI)的配置 65

5.3 Nginx与Perl(FastCGI)在Linux上的安装、配置 69

5.3.1 Perl(FastCGI)的安装 69

5.3.2 Nginx与Perl(FastCGI)的配置 72

第6章 Nginx HTTP负载均衡和反向代理的配置与优化 75

6.1 什么是负载均衡和反向代理 75

6.1.1 负载均衡 75

6.1.2 反向代理 75

6.2 常见的Web负载均衡方法 76

6.2.1 用户手动选择方式 76

6.2.2 DNS轮询方式 77

6.2.3 四/七层负载均衡设备 79

6.2.4 多线多地区智能DNS解析与混合负载均衡方式 83

6.3 Nginx负载均衡与反向代理的配置实例 85

6.3.1 完整的Nginx反向代理示例 85

6.3.2 Nginx负载均衡与反向代理实现动、静态网页分离 89

6.4 Nginx负载均衡的HTTP Upstream模块 90

6.4.1 ip_hash指令 91

6.4.2 server指令 92

6.4.3 upstream指令 92

6.4.4 upstream相关变量 93

6.5 Nginx负载均衡服务器的双机高可用 93

第7章 Nginx的Rewrite规则与实例 101

7.1 什么是Nginx的Rewrite规则 101

7.2 Nginx Rewrite规则相关指令 102

7.2.1 break指令 102

7.2.2 if指令 102

7.2.3 return指令 104

7.2.4 rewrite指令 107

7.2.5 set指令 109

7.2.6 uninitialized_variable_warn指令 109

7.2.7 Nginx Rewrite可以用到的全局变量 109

7.3 PCRE正则表达式语法 110

7.4 Nginx的Rewrite规则编写实例 112

7.5 Nginx与Apache的Rewrite规则实例对比 115

7.5.1 简单Nginx与Apache Rewrite规则 115

7.5.2 允许指定的域名访问本站,其他域名一律跳转 116

7.5.3 URL重写与反向代理同时进行 117

7.5.4 指定URL之外的URL进行Rewrite跳转 117

7.5.5 域名前缀作为重写规则变量的示例 118

第8章 Nginx模块开发 119

8.1 Nginx模块概述 119

8.2 Nginx模块编写实践 121

8.2.1 Hello World模块编写与安装 121

8.2.2 Hello World模块分析 124

第9章 Nginx的Web缓存服务与新浪网的开源NCACHE模块 129

9.1 什么是Web缓存 129

9.2 Nginx的Web缓存服务 130

9.2.1 proxy cache相关指令集 130

9.2.2 proxy cache完整示例 132

9.2.3 fastcgi_cache相关指令集 135

9.2.4 fastcgi_cache完整示例 136

9.3 新浪网开源软件项目——基于Nginx的NCACHE网页缓存系统 138

9.3.1 NCACHE模块的安装 139

9.3.2 NCACHE配置文件编写 139

9.3.3 NCACHE的管理维护 142

9.3.4 NCACHE后端内容源服务器设置 142

第3部分 实战篇 143

第10章 Nginx在国内知名网站中的应用案例 145

10.1 Nginx反向代理与负载均衡类网站应用案例 146

10.1.1 Nginx负载均衡在新浪播客中的应用 146

10.1.2 Nginx负载均衡在金山逍遥网中的应用 150

10.2 Nginx+PHP类网站应用案例 156

10.2.1 Nginx+PHP在金山逍遥网CMS发布系统中的应用 156

10.2.2 Nginx+PHP在某分类信息网站中的应用 158

10.3 Nginx视频点播类网站应用案例 159

10.3.1 Nginx视频点播在金山游戏视频网站中的应用 159

第11章 Nginx的非典型应用实例 161

11.1 用HTTPS(SSL)构建一个安全的Nginx Web服务器 161

11.1.1 自行颁发不受浏览器信任的SSL证书 162

11.1.2 向CA机构申请颁发受浏览器信任的SSL证书 164

11.2 采用Nginx搭建FLV视频服务器 166

11.2.1 采用Nginx的Flv Stream模块搭建HTTP下载方式的FLV视频服务器 166

11.2.2 采用Nginx实现FMS/Red5流媒体视频服务器的负载均衡 168

11.3 Nginx+PHP+MySQL在小内存VPS服务器上的优化 170

11.3.1 增加swap交换文件 171

11.3.2 Nginx的主配置文件(nginx.conf)优化 171

11.3.3 PHP(FastCGI)的配置优化 173

11.3.4 MySQL 5.1配置优化 174

11.4 采用Nginx搭建正向代理服务器 175

第4部分 模块篇 177

第12章 Nginx的核心模块 179

12.1 主模块指令 179

12.1.1 daemon指令 179

12.1.2 env指令 180

12.1.3 debug_points指令 180

12.1.4 error_log指令 180

12.1.5 log_not_found指令 182

12.1.6 include指令 182

12.1.7 lock_file指令 182

12.1.8 master_process指令 183

12.1.9 pid指令 183

12.1.10 ssl_engine指令 183

12.1.11 timer_resolution指令 183

12.1.12 try_files指令 184

12.1.13 user指令 186

12.1.14 worker_cpu_affinity指令 186

12.1.15 worke_priority指令 186

12.1.16 worker_processes指令 186

12.1.17 worker_rlimit_core指令 187

12.1.18 worker_rlimit_nofile指令 187

12.1.19 worker_rlimit_sigpencding指令 187

12.1.20 working_directory指令 188

12.2 主模块变量 188

12.3 事件模块指令 188

12.3.1 accept_mutex指令 188

12.3.2 accept_mutex_delay指令 189

12.3.3 debug_connection指令 189

12.3.4 use指令 189

12.3.5 worker_connections指令 189

第13章 Nginx的标准HTTP模块 191

13.1 HTTP的核心模块 191

13.1.1 alias指令 191

13.1.2 client_body_in file only指令 192

13.1.3 client_body_in_single_buffer指令 192

13.1.4 client_body_buffer_size指令 192

13.1.5 client_body_temp_path指令 193

13.1.6 client_body_timeout指令 193

13.1.7 client_header_buffer_size指令 193

13.1.8 client_header_timeout指令 193

13.1.9 client_max_body_size指令 194

13.1.10 default_type指令 194

13.1.11 directio指令 194

13.1.12 error page指令 195

13.1.13 if_modified_since指令 196

13.1.14 index指令 196

13.1.15 internal指令 197

13.1.16 keepalive_timeout指令 197

13.1.17 keepalive_requests指令 198

13.1.18 large_client_header_buffers指令 198

13.1.19 limit_except指令 199

13.1.20 limit_rate指令 199

13.1.21 limit_rate_after指令 199

13.1.22 listen指令 200

13.1.23 location指令 200

13.1.24 log_not_found指令 202

13.1.25 log_subrequest指令 202

13.1.26 msie_padding指令 202

13.1.27 msie_refresh指令 203

13.1.28 open_file_cache指令 203

13.1.29 open_file_cache_errors指令 204

13.1.30 open_file_cache_min_uses指令 204

13.1.31 open_file_cache_valid指令 204

13.1.32 optimize_server_names指令 204

13.1.33 port_in_redirect指令 205

13.1.34 recursive_error_pages指令 205

13.1.35 resolver指令 205

13.1.36 resolver_timeout指令 205

13.1.37 root指令 206

13.1.38 satisfy_any指令 206

13.1.39 send_timeout指令 206

13.1.40 sendfile指令 206

13.1.41 server指令 207

13.1.42 server_name指令 207

13.1.43 server_name_in_redirect指令 209

13.1.44 server_names_hash_max_size指令 209

13.1.45 server_names_hash_bucket_size指令 210

13.1.46 server_tokens指令 210

13.1.47 tcp_nodelay指令 210

13.1.48 tcp_nopush指令 210

13.1.49 try_files指令 211

13.1.50 types指令 211

13.1.51 HTTP核心模块中可以使用的变量 212

13.2 HTTP Upstream模块 214

13.3 HTTP Access模块 214

13.3.1 allow指令 215

13.3.2 deny指令 215

13.4 HTTP Auth Basic模块 215

13.4.1 auth_basic指令 215

13.4.2 auth_basic_user_file指令 216

13.5 HTTP Autoindex模块 217

13.5.1 autoindex指令 217

13.5.2 autoindex_exact_size指令 217

13.5.3 autoindex_localtime指令 218

13.6 HTTP Browser模块 218

13.6.1 ancient_browser指令 219

13.6.2 ancient_browser_value指令 219

13.6.3 modern_browser指令 219

13.6.4 modern_browser_value指令 221

13.7 HTTP Charset模块 222

13.7.1 charset指令 222

13.7.2 charset_map指令 222

13.7.3 override_charset指令 224

13.7.4 source_charset指令 224

13.8 HTTP Empty Gif模块 224

13.8.1 empty_gif指令 224

13.9 HTTP Fcgi模块 224

13.9.1 fastcgi_buffers指令 225

13.9.2 fastcgi_buffer_size指令 226

13.9.3 fastcgi_cache指令 226

13.9.4 fastcgi_cache_key指令 226

13.9.5 fastcgi_cache_methods指令 227

13.9.6 fastcgi_index指令 227

13.9.7 fastcgi_hide_header指令 227

13.9.8 fastcgi_ignore_client_abort指令 227

13.9.9 fastcgi_intercept_errors指令 228

13.9.10 fastcgi_max_temp_file_size指令 228

13.9.11 fastcgi_param指令 228

13.9.12 fastcgi_pass指令 229

13.9.13 fastcgi_pass_header指令 229

13.9.14 fastcgi_read_timeout指令 229

13.9.15 fastcgi_redirect_errors指令 230

13.9.16 fastcgi_split_path_info指令 230

13.10 geo模块 230

13.10.1 geo指令 232

13.11 Gzip模块 233

13.11.1 gzip指令 234

13.11.2 gzip_buffers指令 234

13.11.3 gzip_comp_level指令 234

13.11.4 gzip_min_length指令 234

13.11.5 gzip_http_version指令 235

13.11.6 gzip_proxied指令 235

13.11.7 gzip_types指令 236

13.12 HTTP Headers模块 236

13.12.1 add_header指令 237

13.12.2 expires指令 237

13.13 HTTP Index模块 237

13.13.1 index指令 238

13.14 HTTP Referer模块 238

13.14.1 valid_referers指令 238

13.15 HTTP Limit Zone模块 239

13.15.1 limit_zone指令 239

13.15.2 limit_conn指令 240

13.16 HTTP Limit Req模块 240

13.16.1 limit_req_zone指令 241

13.16.2 limit_req指令 241

13.17 HTTP Log模块 242

13.17.1 access_log指令 242

13.17.2 log_format指令 243

13.17.3 log_format_combined指令 243

13.17.4 open_log_file_cache指令 244

13.18 HTTP Map模块 244

13.18.1 map指令 245

13.18.2 map_hash_max_size指令 245

13.18.3 map_hash_bucket_size指令 246

13.19 HTTP Memcached模块 246

13.19.1 memcached_pass指令 248

13.19.2 memcached_connect_timeout指令 249

13.19.3 memcached_read_timeout指令 249

13.19.4 memcached_send_timeout指令 249

13.19.5 memcached_buffer_size指令 249

13.19.6 memcached_next_upstream指令 249

13.19.7 HTTP Memcached模块中的变量 250

13.19.8 第三方的Memcached模块 250

13.20 HTTP Proxy模块 250

13.20.1 proxy_buffer_size指令 251

13.20.2 proxy_buffering指令 251

13.20.3 proxy_buffers指令 251

13.20.4 proxy_busy_buffers_size指令 252

13.20.5 proxy_cache相关指令集 252

13.20.6 proxy_connect_timeout指令 252

13.20.7 proxy_headers_hash_bucket_size指令 252

13.20.8 proxy_headers_hash_max_size指令 253

13.20.9 proxy_hide_header指令 253

13.20.10 proxy_ignore_client_abort指令 253

13.20.11 proxy_ignore_headers指令 253

13.20.12 proxy_intercept_errors指令 254

13.20.13 proxy_max_temp_file_size指令 254

13.20.14 proxy_method指令 254

13.20.15 proxy_next_upstream指令 255

13.20.16 proxy_pass指令 256

13.20.17 proxy_pass_header指令 257

13.20.18 proxy_pass_request_body指令 257

13.20.19 proxy_pass_request_headers指令 257

13.20.20 proxy_redirect指令 257

13.20.21 proxy_read_timeout指令 259

13.20.22 proxy_redirect_errors指令 259

13.20.23 proxy_send_lowat指令 259

13.20.24 proxy_send_timeout指令 259

13.20.25 proxy_set_body指令 260

13.20.26 proxy_set_header指令 260

13.20.27 proxy_store指令 261

13.20.28 proxy_store_access指令 262

13.20.29 proxy_temp_file_write_size指令 262

13.20.30 proxy_temp_path指令 262

13.20.31 proxy_upstream_fail_timeout指令 263

13.20.32 proxy_upstream_max_fails指令 263

13.20.33 HTTP Proxy模块的变量 263

13.21 HTTP Rewrite模块 263

13.22 HTTP SSI模块 263

13.22.1 ssi指令 264

13.22.2 ssi_silent_errors指令 264

13.22.3 ssi_types指令 264

13.22.4 ssi_value_length指令 265

13.22.5 SSI命令 265

13.22.6 SSI变量 267

13.23 HTTP Userid模块 267

13.23.1 userid指令 267

13.23.2 userid_domain指令 268

13.23.3 userid_expires指令 268

13.23.4 userid_name指令 268

13.23.5 userid_p3p指令 268

13.23.6 userid_path指令 269

13.23.7 userid_service指令 269

第14章 Nginx的其他HTTP模块 271

14.1 HTTP Addition模块 271

14.1.1 add_before_body指令 272

14.1.2 add_after_body指令 272

14.1.3 addition_types指令 273

14.2 Embedded Perl模块 273

14.2.1 perl指令 274

14.2.2 perl_modules指令 274

14.2.3 perl_require指令 275

14.2.4 perl_set指令 275

14.2.5 从SSI调用Perl脚本 276

14.3 Flv Stream模块 278

14.3.1 flv指令 279

14.4 HTTP Gzip Static模块 279

14.4.1 gzip_static指令 279

14.4.2 gzip_http_version指令 280

14.4.3 gzip_proxied指令 280

14.5 HTTP Random Index模块 280

14.5.1 random_index指令 280

14.6 HTTP Geo IP模块 280

14.6.1 geoip_country指令 281

14.6.2 geoip_city指令 282

14.7 HTTP RealIp模块 282

14.7.1 set_real_ip_from指令 283

14.7.2 real_ip_header指令 283

14.8 HTTP SSL模块 283

14.8.1 在多个server{……}虚拟主机中使用通配符SSL证书 286

14.8.2 ssl指令 286

14.8.3 ssl_certificate指令 286

14.8.4 ssl_certificate_key指令 287

14.8.5 ssl_client_certificate指令 287

14.8.6 ssl_dhparam指令 287

14.8.7 ssl_ciphers指令 287

14.8.8 ssl_crl指令 288

14.8.9 ssl_prefer_server_ciphers指令 288

14.8.10 ssl_protocols指令 288

14.8.11 ssl_verify_client指令 288

14.8.12 ssl_verify_depth指令 289

14.8.13 ssl_session_cache指令 289

14.8.14 ssl_session_timeout指令 290

14.8.15 ssl_engine指令 290

14.9 HTTP Stub Status模块 291

14.9.1 stub status指令 291

14.10 HTTP Sub模块 292

14.10.1 sub_filter指令 292

14.10.2 sub_filter_once指令 292

14.10.3 sub_filter_types指令 293

14.11 HTTP Dav模块 293

14.11.1 dav access指令 293

14.11.2 dav methods指令 294

14.11.3 create_full_put_path指令 294

14.12 Google Perftools模块 294

14.12.1 google_perftools_profiles指令 295

14.13 HTTP XSLT模块 295

14.13.1 xslt_entities指令 296

14.13.2 xslt_stylesheet指令 296

14.13.3 xslt_types指令 297

14.14 HTTP Secure Link模块 297

14.14.1 secure_link_secret指令 297

14.14.2 $secure_link变量 298

14.15 HTTP Image Filter模块 299

14.15.1 image_filter指令 299

14.15.2 image_filter_buffer指令 300

14.15.3 image_filter_jpeg_quality指令 300

14.15.4 image_filter_transparency指令 300

第1 5章 Nginx的邮件模块 301

15.1 Nginx邮件核心模块 303

15.1.1 auth指令 303

15.1.2 imap_capabilities指令 303

15.1.3 imap_client_buffer指令 303

15.1.4 listen指令 303

15.1.5 pop3_auth指令 304

15.1.6 pop3_capabilities指令 304

15.1.7 protocol指令 304

15.1.8 server指令 305

15.1.9 server_name指令 305

15.1.10 smtp_auth指令 306

15.1.11 smtp_capabilities指令 306

15.1.12 so_keepalive指令 306

15.1.13 timeout指令 307

15.2 Nginx邮件认证模块 307

15.2.1 auth_http指令 307

15.2.2 auth_http_header指令 307

15.2.3 auth_http_timeout指令 308

15.3 Nginx邮件代理模块 308

15.3.1 proxy指令 308

15.3.2 proxy_buffer指令 308

15.3.3 proxy_pass_error_message指令 309

15.3.4 proxy_timeout指令 309

15.3.5 xclient指令 309

15.4 Nginx邮件SSL模块 310

15.4.1 ssl模块 310

15.4.2 ssl_certificate指令 310

15.4.3 ssl_certificate_key指令 310

15.4.4 ssl_ciphers指令 310

15.4.5 ssl_prefer_server_ciphers指令 311

15.4.6 ssl_protocols指令 311

15.4.7 ssl_session_cache指令 311

15.4.8 ssl_session_timeout指令 312

15.4.9 starttls指令 312

15.5 Nginx邮件模块配置实例 312

索引 315

参考资料 319