Nginx_PDF ~ 實戰Nginx取代Apache的高性能Web伺服器

Nginx_PDF ~ 實戰Nginx取代Apache的高性能Web伺服器

Nginx_PDF ~ 實戰Nginx取代Apache的高性能Web伺服器 [PDF電子書]




第 1 章 Nginx 簡介基本介紹 

1.1  常用的 Web 伺服器簡介  3 
1.1.1  Apache 伺服器  3 
1.1.2  Lighttpd 伺服器  3 
1.1.3  Tomcat 伺服器  4 
1.1.4  IBM WebSphere 伺服器  4 
1.1.5  Microsoft IIS  4 
1.2  Nginx 簡介  4 
1.3  選擇 Nginx 的理由  5 
1.3.1  它可以高併發連接  5 
1.3.2  記憶體消耗少  7 
1.3.3  設定檔非常簡單  8 
1.3.4  成本低廉  8 
1.3.5  支援 Rewrite 重寫規則  9 
1.3.6  內置的健康檢查功能  9 
1.3.7  節省頻寬  9 
1.3.8  穩定性高  9 
1.3.9  支持熱部署  9 
1.4  Nginx 與 Apache、Lighttpd 的綜合對比  9 
第 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 的啟動、停止、平滑重啟  16 
2.4.1  Nginx 的啟動  17 
2.4.2  Nginx 的停止  17 
2.5  Nginx 的平滑重啟  18 
2.6  Nginx 的信號控制  18 
2.7  Nginx 的平滑升級  19 第 3 章  Nginx 的基本配置與優化  21 
3.1  Nginx 的完整配置示例  21 
3.2  Nginx 的虛擬主機配置  23 
3.2.1  什麼是虛擬主機  23 
3.2.2  配置基於 IP 的虛擬主機  24 
3.2.3  配置基於功能變數名稱的虛擬主機  27 
3.3  Nginx 的日誌檔配置與切割  29 
3.3.1  用 log_format 指令設置日誌格式  29 
3.3.2  用 access_log 指令指定日誌檔存放路徑  30 
3.3.3  Nginx 日誌檔的切割  32 
3.4  Nginx 的壓縮輸出配置  33 
3.5  Nginx 的自動列目錄配置  35 
3.6  Nginx 的流覽器本地緩存設置  36 
第 4 章  Nginx 與 PHP(FastCGI)的安裝、配置與優化  38 
4.1  獲取相關開來源程式  39 
4.2  安裝 PHP 5.2.10(FastCGI 模式)  42 
4.3  安裝 Nginx 0.8.15  52 
4.4  配置開機自動啟動 Nginx + PHP  55 
4.5  優化 Linux 內核參數  55 
4.6  在不停止 Nginx 服務的情況下平滑變更 Nginx 配置  56 
4.7  編寫每天定時切割 Nginx 日誌的腳本  56 
第 5 章  Nginx 與 JSP、ASP.NET、Perl 的安裝與配置  59 
5.1  Nginx 與 JSP(Tomcat)在 Linux 上的安裝、配置  59 
5.2.1  Tomcat 和 JDK 的安裝  60 
5.1.2  Nginx 與 Tomcat 的配置  61 
5.2  Nginx 與 ASP.NET(Mono+FastCGI)在 Linux 上的安裝、配
置  63 
5.2.1  Mono 的安裝  63 
5.2.2  Nginx 與 ASP.NET(Mono+FastCGI)的配置  64 
5.3  Nginx 與 Perl(FastCGI)在 Linux 上的安裝、配置  67 
5.3.1  Perl(FastCGI)的安裝  67 
5.3.2  Nginx 與 Perl(FastCGI)的配置  70 第 6 章  Nginx HTTP 負載均衡和反向代理的配置與優化  73 
6.1  什麼是負載均衡和反向代理  73 
6.1.1  負載均衡  73 
6.1.2  反向代理  73 
6.2  常見的 Web 負載均衡方法  74 
6.2.1  使用者手動選擇方式  74 
6.2.2  DNS 輪詢方式  75 
6.2.3  四/七層負載均衡設備  77 
6.2.4  多線多地區智慧 DNS 解析與混合負載均衡方式  81 
6.3  Nginx 負載均衡與反向代理的配置實例  83 
6.3.1  完整的 Nginx 反向代理示例如代碼 6-3 所示  83 
6.3.2  Nginx 負載均衡與反向代理實現動、靜態網頁分離  86 
6.4  Nginx 負載均衡的 HTTP Upstream 模組  88 
6.4.1  ip_hash 指令  89 
6.4.2  server 指令  89 
6.4.3  upstream 指令  90 
6.4.4  upstream 相關變數  90 
6.5  Nginx 負載均衡伺服器的雙機高可用  91 
第 7 章  Nginx 的 Rewrite 規則編寫實例  99 
7.1  什麼是 Nginx 的 Rewrite 規則  99 
7.2  Nginx Rewrite 規則相關指令  99 
7.2.1  break 指令  100 
7.2.2  if 指令  100 
7.2.3  return 指令  101 
7.2.4  rewrite 指令  104 
7.2.5  set 指令  106 
7.2.6  uninitialized_variable_warn 指令  106 
7.2.7  Nginx Rewrite 可以用到的全域變數  106 
7.3  PCRE 規則運算式語法  107 
7.4  Nginx 的 Rewrite 規則編寫實例  109 
7.5  Nginx 與 Apache 的 Rewrite 規則實例對比  112 
7.5.1  簡單的 Nginx 與 Apache Rewrite 重寫規則  112 
7.5.2  允許指定的功能變數名稱訪問本站,其他功能變數名稱一律跳轉到http://www.aaa.com  113 
7.5.3  URL 重寫與反向代理同時進行  114 
7.5.4  指定 URL 之外的 URL 進行 Rewrite 跳轉  114 
7.5.5  功能變數名稱首碼作為重寫規則變數的示例  115 
第 8 章  Nginx 模組開發  117 
8.1  Nginx 模組概述  117 
8.2  Nginx 模組編寫實踐  119 
8.2.1  Hello World 模組編寫與安裝  119 
8.2.2  Hello World 模組分析  121 
第 9 章  Nginx 的 Web 緩存服務與新浪網的開源 NCACHE 模
塊  127 
9.1  什麼是 Web 緩存?  127 
9.2  Nginx 的 Web 緩存服務  128 
9.2.1  proxy_cache 相關指令集  128 
9.2.2  proxy_cache 完整示例  130 
9.2.3  fastcgi_cache 相關指令集  131 
9.3  新浪網開源軟體專案——基於 Nginx 的 NCache 網頁緩存系
統  135 
9.3.1  NCACHE 模組的安裝  136 
9.3.2  NCACHE 設定檔編寫  136 
9.3.3  NCACHE 的管理維護  138 
9.3.4  NCACHE 後端內容原始伺服器設置  139 
第 10 章  Nginx 在國內知名網站中的應用案例  141 
10.1  Nginx 反向代理與負載均衡類網站應用案例  142 
10.1.1  Nginx 負載均衡在新浪播客中的應用  142 
10.1.2  Nginx 負載均衡在金山逍遙網中的應用  146 
10.2  Nginx+PHP 類網站應用案例  152 
10.2.1  Nginx+PHP 在金山逍遙網 CMS 發佈系統中的應用  152 
10.2.2  Nginx+PHP 在某分類資訊網站中的應用  154 第 11 章  Nginx 的非典型應用實例  171 
11.1  用 HTTPS(SSL)構建一個安全的 Nginx Web 伺服器  171 
11.1.1  自行頒發不受流覽器信任的 SSL 證書  171 
11.1.2  向 CA 機構申請頒發受流覽器信任的 SSL 證書  174 
11.2  採用 Nginx 搭建 FLV 視訊伺服器  176 
11.2.1  採用 Nginx 的 Flv Stream 模組搭建 HTTP 下載方式的 FLV
視訊伺服器  176 
11.2.2  採用 Nginx 實現 FMS/Red5 流媒體視訊伺服器的負載均
衡  177 
11.3  Nginx+PHP+MySQL 在小記憶體 VPS 伺服器上的優化  179 
11.3.1  增加 swap 交換檔  180 
11.3.2  Nginx 的主設定檔(nginx.conf)優化  180 
11.3.3  PHP(FastCGI)的配置優化  182 
11.3.4  MySQL 5.1 配置優化  182 
11.4  採用 Nginx 搭建正向代理伺服器  184 
第 12 章  Nginx 的核心模組  185 
12.1  主模組指令  185 
12.1.1  daemon 指令  185 
12.1.2  env 指令  186 
12.1.3  debug_points 指令  186 
12.1.4  error_log 指令  186 
12.1.5  log_not_found 指令  187 
12.1.6  include 指令  188 
12.1.7  lock_file 指令  188 
12.1.8  master_process 指令  188 
12.1.9  pid 指令  189 
12.1.10  ssl_engine 指令  189 
12.1.11  timer_resolution 指令  189 
12.1.12  try_files 指令  189 
12.1.13  user 指令  191 
12.1.14  worker_cpu_affinity 指令  191 
12.1.15  worker_priority 指令  192 
12.1.16  worker_processes 指令  192 12.1.17  worker_rlimit_core 指令  193 
12.1.18  worker_rlimit_nofile 指令  193 
12.1.18  worker_rlimit_sigpending 指令  193 
12.1.19  working_directory 指令  193 
12.2  主模組變數  193 
12.3  事件模組指令  194 
12.3.1  accept_mutex 指令  194 
12.3.2  accept_mutex_delay 指令  194 
12.3.3  debug_connection 指令  194 
12.3.4  use 指令  195 
12.3.5  worker_connections 指令  195 
第 13 章  Nginx 的標準 HTTP 模組  197 
13.1  HTTP 的核心模組  197 
13.1.1  alias 指令  197 
13.1.2  client_body_in_file_only 指令  198 
13.1.3  client_body_in_single_buffer 指令  198 
13.1.4  client_body_buffer_size 指令  198 
13.1.5  client_body_temp_path 指令  198 
13.1.6  client_body_timeout 指令  199 
13.1.7  client_header_buffer_size 指令  199 
13.1.8  client_header_timeout 指令  199 
13.1.9  client_max_body_size 指令  199 
13.1.10  default_type 指令  200 
13.1.11  directio 指令  200 
13.1.12  error_page 指令  201 
13.1.13  if_modified_since 指令  201 
13.1.14  index 指令  202 
13.1.14  internal 指令  202 
13.1.15  keepalive_timeout 指令  203 
13.1.16  keepalive_requests 指令  203 
13.1.17  large_client_header_buffers 指令  204 
13.1.18  limit_except 指令  204 
13.1.19  limit_rate 指令  204 13.1.20  limit_rate_after 指令  205 
13.1.21  listen 指令  205 
13.1.22  location 指令  206 
13.1.24  log_not_found 指令  207 
13.1.25  log_subrequest 指令  207 
13.1.26  msie_padding 指令  208 
13.1.27  msie_refresh 指令  208 
13.1.28  open_file_cache 指令  208 
13.1.29  open_file_cache_errors 指令  209 
13.1.30  open_file_cache_min_uses 指令  209 
13.1.31  open_file_cache_valid 指令  209 
13.1.32  optimize_server_names 指令  209 
13.1.33  port_in_redirect 指令  210 
13.1.34  recursive_error_pages 指令  210 
13.1.35  resolver 指令  210 
13.1.36  resolver_timeout 指令  210 
13.1.37  root 指令  211 
13.1.38  satisfy_any 指令  211 
13.1.39  send_timeout 指令  211 
13.1.40  sendfile 指令  211 
13.1.41  server 指令  212 
13.1.42  server_name 指令  212 
13.1.43  server_name_in_redirect 指令  214 
13.1.44  server_names_hash_max_size 指令  214 
13.1.45  server_names_hash_bucket_size 指令  214 
13.1.46  server_tokens 指令  215 
13.1.47  tcp_nodelay 指令  215 
13.1.48  tcp_nopush 指令  215 
13.1.49  try_files 指令  215 
13.1.50  types 指令  216 
13.1.51  HTTP 核心模組中可以使用的變數  216 
13.2  HTTP Upstream 模組  219 
13.3  Http Access 模組  219 
13.3.1  allow 指令  219 13.3.2  deny 指令  219 
13.4  HTTP Auth Basic 模組  220 
13.4.1  auth_basic 指令  220 
13.4.2  auth_basic_user_file  221 
13.5  Http Autoindex 模組  221 
13.5.1  autoindex 指令  221 
13.5.2  autoindex_exact_size 指令  222 
13.5.3  autoindex_localtime 指令  222 
13.6  Http Browser 模組  222 
13.6.1  ancient_browser 指令  223 
13.6.2  ancient_browser_value 指令  223 
13.6.3  modern_browser 指令  223 
13.6.4  modern_browser_value 指令  225 
13.7  Http Charset 模組  226 
13.7.1  charset 指令  226 
13.7.2  charset_map 指令  226 
13.7.3  override_charset 指令  228 
13.7.4  source_charset 指令  228 
13.8  Http Empty Gif 模組  228 
13.8.1  empty_gif 指令  228 
13.9  Http Fcgi 模組  228 
13.9.1  fastcgi_buffers 指令  229 
13.9.2  fastcgi_buffer_size 指令  230 
13.9.3  fastcgi_cache 指令  230 
13.9.4  fastcgi_cache_key 指令  230 
13.9.5  fastcgi_cache_methods 指令  230 
13.9.6  fastcgi_index 指令  231 
13.9.7  fastcgi_hide_header 指令  231 
13.9.8  fastcgi_ignore_client_abort 指令  231 
13.9.9  fastcgi_intercept_errors 指令  231 
13.9.10  fastcgi_max_temp_file_size 指令  232 
13.9.11  fastcgi_param 指令  232 
13.9.12  fastcgi_pass 指令  233 
13.9.13  fastcgi_pass_header 指令  234 13.9.14  fastcgi_read_timeout 指令  234 
13.9.15  fastcgi_redirect_errors 指令  234 
13.9.16  fastcgi_split_path_info 指令  234 
13.10  Geo 模組  235 
13.10.1  geo 指令  236 
13.11  Gzip 模組  237 
13.11.1  gzip 指令  238 
13.11.2  gzip_buffers 指令  238 
13.11.3  gzip_comp_level 指令  239 
13.11.4  gzip_min_length 指令  239 
13.11.5  gzip_http_version 指令  239 
13.11.6  gzip_proxied 指令  240 
13.11.7  gzip_types 指令  240 
13.12  Http Headers 模組  241 
13.12.1  add_header 指令  242 
13.12.2  expires 指令  242 
13.13  Http Index 模組  243 
13.13.1  index 指令  243 
13.14  Http Referer 模組  243 
13.14.1  valid_referers 指令  244 
13.15  Http Limit Zone 模組  244 
13.15.1  limit_zone 指令  245 
13.15.2  limit_conn 指令  245 
13.16  Http Limit Req 模組  246 
13.16.1  limit_req_zone 指令  246 
13.16.2  limit_req 指令  247 
13.17  Http Log 模組  248 
13.17.1  access_log 指令  248 
13.17.2  log_format 指令  249 
13.17.3  log_format_combined 指令  249 
13.17.4  open_log_file_cache 指令  250 
13.18  Http Map 模組  250 
13.18.1  map 指令  251 
13.18.2  map_hash_max_size 指令  252 13.18.3  map_hash_bucket_size 指令  252 
13.19  Http Memcached 模組  252 
13.19.1  memcached_pass 指令  254 
13.19.2  memcached_connect_timeout 指令  255 
13.19.3  memcached_read_timeout 指令  255 
13.19.4  memcached_send_timeout 指令  255 
13.19.5  memcached_buffer_size 指令  256 
13.19.6  memcached_next_upstream 指令  256 
13.19.7  Http Memcached 模組中的變數  256 
13.19.8  協力廠商的 Memcached 模組  256 
13.20  Http Proxy 模組  257 
13.20.1  proxy_buffer_size 指令  257 
13.20.2  proxy_buffering 指令  257 
13.20.3  proxy_buffers 指令  258 
13.20.4  proxy_busy_buffers_size 指令  258 
13.20.5  proxy_cache 相關指令集  259 
13.20.6  proxy_connect_timeout 指令  259 
13.20.7  proxy_headers_hash_bucket_size 指令  259 
13.20.8  proxy_headers_hash_max_size 指令  259 
13.20.9  proxy_hide_header 指令  260 
13.20.10  proxy_ignore_client_abort 指令  260 
13.20.11  proxy_ignore_headers 指令  260 
13.20.12  proxy_intercept_errors 指令  261 
13.20.13  proxy_max_temp_file_size 指令  261 
13.20.14  proxy_method 指令  261 
13.20.15  proxy_next_upstream 指令  262 
13.20.16  proxy_pass 指令  263 
13.20.17  proxy_pass_header 指令  264 
13.20.18  proxy_pass_request_body 指令  265 
13.20.19  proxy_pass_request_headers 指令  265 
13.20.20  proxy_redirect 指令  265 
13.20.21  proxy_read_timeout 指令  266 
13.20.22  proxy_redirect_errors 指令  267 
13.20.23  proxy_send_lowat 指令  267 13.20.24  proxy_send_timeout 指令  267 
13.20.25  proxy_set_body 指令  268 
13.20.26  proxy_set_header 指令  268 
13.20.27  proxy_store 指令  269 
13.20.28  proxy_store_access 指令  270 
13.20.29  proxy_temp_file_write_size 指令  271 
13.20.30  proxy_temp_path 指令  271 
13.20.31  proxy_upstream_fail_timeout 指令  271 
13.20.32  proxy_upstream_max_fails 指令  271 
13.20.33  Http Proxy 模組的變數  272 
13.21  Http Rewrite 模組  272 
13.22  Http SSI 模組  272 
13.22.1  ssi 指令  273 
13.22.2  ssi_silent_errors 指令  273 
13.22.3  ssi_types 指令  273 
13.22.4  ssi_value_length 指令  274 
13.22.5  SSI 命令  274 
13.22.6  SSI 變數  276 
13.27  Http Userid 模組  277 
13.27.1  userid 指令  277 
13.27.2  userid_domain 指令  277 
13.27.3  userid_expires 指令  278 
13.27.4  userid_name 指令  278 
13.27.5  userid_p3p 指令  278 
13.27.6  userid_path 指令  279 
13.27.6  userid_service 指令  279 
第 14 章  Nginx 的其他 HTTP 模組  280 
14.1  Http Addition 模組  280 
14.1.1  add_before_body  281 
14.1.2  add_after_body  281 
14.1.3  addition_types  281 
14.2  Embedded Perl 模組  281 
14.2.1  perl 指令  283 14.2.2  perl_modules 指令  283 
14.2.3  perl_require 指令  283 
14.2.4  perl_set 指令  283 
14.2.5  從 SSI 調用 Perl 腳本  284 
14.3  Flv Stream 模組  286 
14.3  flv 指令  287 
14.4  Http Gzip Static 模組  287 
14.4.1  gzip_static 指令  287 
14.4.2  gzip_http_version 指令  287 
14.4.3  gzip_proxied 指令  288 
14.5  Http Random Index 模組  288 
14.5.1  random_index 指令  288 
14.6  Http Geo IP 模組  288 
14.6.1  geoip_country 指令  289 
14.6.2  geoip_city 模組  289 
14.7  Http RealIp 模組  290 
14.7.1  set_real_ip_from 指令  290 
14.7.2  real_ip_header 指令  291 
14.8  Http SSL 模組  291 
14.8.1  在多個 server{……}虛擬主機中使用萬用字元 SSL 證
書  294 
14.8.2  ssl 指令  294 
14.8.3  ssl_certificate 指令  294 
14.8.4  ssl_certificate_key 指令  295 
14.8.5  ssl_client_certificate 指令  295 
14.8.6  ssl_dhparam 指令  295 
14.8.7  ssl_ciphers 指令  295 
14.8.8  ssl_crl 指令  296 
14.8.9  ssl_prefer_server_ciphers 指令  296 
14.8.10  ssl_protocols 指令  296 
14.8.11  ssl_verify_client 指令  296 
14.8.12  ssl_verify_depth 指令  296 
14.8.13  ssl_session_cache 指令  297 
14.8.14  ssl_session_timeout 指令  297 14.8.15  ssl_engine 指令  298 
14.9  Http Stub Status 模組  298 
14.9.1  stub_status 指令  299 
14.10  Http Sub 模組  299 
14.10.1  sub_filter 指令  300 
14.10.2  sub_filter_once 指令  300 
14.10.3  sub_filter_types 指令  300 
14.11  Http Dav 模組  300 
14.11.1  dav_access 指令  301 
14.11.2  dav_methods 指令  301 
14.11.3  create_full_put_path 指令  301 
14.12  Google Perftools 模組  302 
14.12.1  google_perftools_profiles 指令  302 
14.13  Http XSLT 模組  302 
14.13.1  xslt_entities 指令  303 
14.13.2  xslt_stylesheet 指令  303 
14.13.3  xslt_types 指令  304 
14.14  Http Secure Link 模組  304 
14.14.1  secure_link_secret 指令  304 
14.14.2  $secure_link 變數  305 
14.15  Http Image Filter 模組  306 
14.15.1  image_filter  306 
14.15.2  image_filter_buffer  306 
14.15.3  image_filter_jpeg_quality  307 
14.15.4  image_filter_transparency  307 
第 15 章  Nginx 的郵件模組  301 
15.1  Nginx 郵件核心模組  303 
15.2  Nginx 郵件認證模組  307 
15.3  Nginx 郵件代理模組  308 
15.4  Nginx 郵件 SSL 模組  310 
15.5  Nginx 郵件模組配置實例  312

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *