-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Nginx應用與運維實戰

( 簡體 字)
作者:王小東 著類別:1. -> 程式設計 -> 網路編程 -> Nginx
譯者:
出版社:機械工業出版社Nginx應用與運維實戰 3dWoo書號: 53149
詢問書籍請說出此書號!

缺書
NT售價: 545

出版日:7/1/2020
頁數:431
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111659921
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

為什么寫這本書

在互聯網與我們生活已密不可分的今天,大規模、高性能的網站架構技術已成為每個互聯網技術人員的必備技能。Nginx作為一款開源的Web服務器軟件,因其具有性能穩定、高并發、低內存耗用、高性能的處理能力等特點,而被廣泛應用到國內外各互聯網廠商的實際生產架構中。由于互聯網技術迭代非常快,云計算、微服務等新技術層出不窮,Nginx也一直處于活躍開發的狀態,并在新版本中增加了很多強大的功能,與這些新技術緊密集成。同時基于其開源版本衍生出來的OpenResty和淘寶的Tengine等軟件也根據自身需求提供了優秀的擴展功能,滿足了云計算、微服務等各種技術的應用需求,并在實際生產環境中得到了廣泛應用。

作為一款Web服務器軟件,Nginx實現了Web服務器的基本功能,用戶通過簡單的配置指令就可以快速完成Web服務器的搭建。它還是網絡通信協議處理軟件,支持TCP/UDP、HTTP、HTTP/2、gRPC、FastCGI、SCGI、uWSGI、WebDAV等協議的處理,并實現了相應通信協議的請求解析、長連接、代理轉發、負載均衡、會話保持等互聯網架構中常見的應用功能。同時,它還是一款高并發服務軟件,其采用的固定數量的多進程模型、事件驅動處理機制、工作流處理方式及模塊化架構等軟件開發設計,已成為高并發服務軟件開發的典范。

Nginx自誕生至今已有十幾年時間,雖然相關資料很多,但國內可獲得的資料很多是直接翻譯自官方文檔,這些資料讓讀者只是停留在知其然而不知其所以然的層面,即便有深入講解某一功能的資料,也僅能讓讀者管中窺豹,而無法全面了解Nginx的功能并在實際工作中熟練應用。市面上的圖書或偏重于Nginx服務器的搭建,或偏重于Nginx的源碼解析,同時Nginx的新版本及云計算、微服務等新技術迭代較快,這就導致市面上介紹Nginx最新技術實際應用及運維管理的資料稀少。而Nginx的用戶只有理解了Nginx的各項指令參數的功用,才能熟練對Nginx的各種功能進行靈活組合,以使其發揮最高的性能,進而在實際工作中解決各種問題。鑒于以上原因,本書分別從Nginx介紹、應用實戰、運維管理及與Kubernetes和微服務的應用集成4個部分來介紹Nginx的特點及運維管理實戰經驗,力求給從事互聯網技術工作的讀者帶來幫助。

讀者對象

本書的目標群體為具有一定Linux基礎的互聯網行業運維工程師、系統架構師。因為Nginx可應用于Web服務、負載均衡、微服務等多個方面,所以本書也可作為開發工程師及軟件架構師的日常工作參考書。

本書特色

本書對開源版Nginx自有的配置指令進行了全面介紹和配置舉例,同時力求對涉及的技術術語及其原理進行闡述,使讀者可以深刻理解和掌握Nginx配置指令的配置方法。Nginx是一款網絡通信協議處理軟件,涉及大量網絡通信協議的處理方法,對于本書中每個涉及網絡通信協議的配置,筆者都對相關技術特點進行了介紹,使讀者可以結合配置案例掌握Nginx在不同應用場景下的使用方法。全書所涉及的軟件部署均采用了Docker化的部署方法,不僅充分利用了Docker容器的便捷部署方式,還滿足了目前容器化運維管理工作的技術需求。

Nginx現仍處于活躍開發中,本書基于Nginx最新版本及官方資料撰寫,對Nginx開源版本最新功能進行了完整介紹,還介紹了Nginx與目前比較流行的Kubernetes和微服務架構應用的集成。

如何閱讀本書

Nginx是一款非常優秀的開源軟件,筆者主要基于自身實際使用Nginx的經驗來分享Nginx的應用和運維方法。本書在邏輯上可分為4個部分,分別為Nginx介紹、應用實戰、運維管理,以及Nginx與Kubernetes、微服務的應用集成。

第一部分 Nginx介紹(第1∼4章)

第1章 Nginx概述

Nginx的第一個版本發布于2004年,經過多年的發展,逐漸演變出Nginx、Nginx Plus、Tengine、OpenResty這4個被廣泛應用的版本。本章分別介紹了這4個版本各自的特點,并通過對開源Nginx架構的特點及實現原理的介紹,使讀者對Nginx的功能有初步的了解。

第2章 Nginx編譯及部署

Nginx是用C語言開發的,需要通過對源代碼進行編譯才能獲得可運行的二進制文件。本章介紹了Nginx開源版本的編譯配置參數及Tengine、OpenResty兩個版本的擴展編譯配置參數和所集成的模塊,同時介紹了各個開源版本的編譯和基于Docker的編譯部署方法。

第3章 Nginx核心配置指令

Nginx的配置是通過在配置文件中調整不同配置指令的指令值實現的。本章介紹了Nginx配置文件的目錄結構及主配置文件nginx.conf的文件結構,并對Nginx的進程及HTTP核心配置的配置指令進行了介紹和配置舉例。

第4章 Nginx HTTP模塊詳解

Nginx 的HTTP模塊配置指令主要負責HTTP請求處理的配置。本章介紹了Nginx在動態賦值、訪問控制、數據處理這3個方面的配置指令和配置舉例。

第二部分 應用實戰(第5∼8章)

第5章 Nginx Web服務應用實戰

Nginx 的一個基本功能是作為Web服務器提供HTTP服務,它支持對靜態頁面、動態腳本頁面、多媒體等文件的響應和處理。本章通過靜態文件服務器、HTTPS安全服務器、PHP網站搭建、Python網站搭建等實戰案例,介紹了Nginx作為Web服務的應用實戰。

第6章 Nginx 代理服務應用實戰

Nginx支持HTTP、TCP、gRPC等多種協議的代理,通過上述代理功能,后端服務器可實現更靈活安全的部署。本章通過實戰案例介紹了Nginx代理相關配置指令的使用方法及需要關注的客戶端源IP問題的解決方案。

第7章 Nginx緩存服務應用實戰

內容緩存是加速用戶訪問的常用技術。本章介紹了Nginx緩存模塊的配置指令,并通過客戶端緩存、代理緩存、鏡像緩存及Memcached集成等應用場景配置案例,介紹了Nginx作為緩存服務器的應用實戰。

第8章 Nginx負載均衡應用實戰

Nginx通過上游模塊與代理模塊共同實現了對后端服務器的訪問負載功能,Nginx支持HTTP、TCP/UDP、gRPC、FastCGI、uWSGI、SCGI、Memcached等協議的反向代理。本章詳細介紹了Nginx負載均衡相關的配置指令和官方自帶的負載均衡算法及實現原理。

第三部分 運維管理(第9∼11章)

第9章 Nginx日志管理

Nginx的日志分為訪問日志和錯誤日志兩種。日志的收集和分析是日常運維工作的重要內容,日志不僅可以幫助運維工程師排查Nginx的問題及優化Nginx的性能,還可以通過與ELK集成為其代理的網站應用提供安全、性能、可用性及運行的PV/UV等方面的數據,通過對這些數據進行不同維度的分析,可以了解如何提升網站應用的運維能力。

第10章 Nginx 監控配置及管理

在Nginx的日常運維管理工作中,Nginx的監控管理是一項重要的工作,但開源版本Nginx自帶的監控數據采集能力相對較弱。本章介紹了開源Nginx與第三方模塊集成的方法,這些方法增強了Nginx的監控數據采集能力。本章還介紹了目前流行的監控工具Prometheus對Nginx服務器的監控、告警方法。另外還舉例介紹了監控工具Zabbix獲取Prometheus Exporter數據,以便在運維管理工作中實現統一化監控管理的方法。

第11章 Nginx集群負載與配置管理

高業務量的互聯網應用架構中,通常都是通過多組Nginx集群實現后端不同應用服務集群負載均衡的,本章介紹了基于Keepalived的Nginx集群的多層負載架構搭建,并舉例介紹了通過現有的開源軟件Jenkins、GitLab和Ansible組合,快速搭建一套Web化的Nginx集群配置管理框架的方法。

第四部分 Nginx與Kubernetes、微服務的應用集成(第12∼13章)

第12章 Nginx 在Kubernetes中的應用

Kubernetes是Google開源的分布式容器管理系統,它實現了對容器的部署、網絡管理、負載調度、節點集群和資源的擴縮容等自動化管理功能。在該服務對外發布的方案中,Nginx 以 Nginx Ingress組件的方式為Kubernetes集群的Pod應用提供了訪問控制、認證管理、應用層代理、負載均衡等功能,使Kubernetes對集群中運行于容器的應用程序具有更靈活的應用層,以提供對外訪問的管理能力。本章介紹了Kubernetes的相關術語及網絡通信機制,讀者可通過相關網絡通信機制根據實際需求選擇Nginx Ingress的部署方式,并通過本章介紹的配置映射和注解這兩種不同的配置方式實現日常Nginx Ingress的配置管理工作。

第13章 Nginx在微服務架構中的應用

近幾年,微服務架構技術發展迅猛,已成為目前主流的應用架構技術。在微服務架構中,Nginx也在微服務網關等微服務的核心組件中發揮著重要的作用。本章從軟件發展歷史的角度介紹了對微服務架構的認識,并舉例介紹了基于OpenResty的開源微服務網關軟件Kong作為微服務網關的應用配置方法。

勘誤和支持

由于筆者的水平有限,書中難免存在不足或疏漏之處,在此懇請讀者朋友批評和指正。你可以將異議發布到本書的支持網站,筆者將盡量在線上為你提供滿意的答復。如果你有更多的寶貴意見,也歡迎發送郵件。非常感謝你對本書的支持。

致謝

感謝Nginx的作者及其團隊,他們提供了一個如此優秀且應用廣泛的開源項目,并使該項目一直處于活躍開發狀態,且不斷創新,擁抱新技術,為我們持續提供日益強大的互聯網絡通信協議解決方案。

感謝OpenResty的作者章亦春,他將Lua語言以模塊的方式嵌入Nginx中,極大地擴展了Nginx的可編程性,降低了Nginx功能擴展的難度,給Nginx用戶的日常使用帶來了極大的便利。

感謝網絡中不吝分享知識的眾多朋友,大家分享的資料補充了筆者個人技術的短板,矯正了筆者諸多細節上的不妥之處,給本書的寫作帶來了極大的幫助。

感謝機械工業出版社華章公司的編輯楊福川,感謝他在筆者創作本書過程中給予的指導和幫助。

感謝在工作和生活中給予筆者幫助的家人及朋友,是你們的理解和支持讓我能夠完成本書的寫作。

王小東

2020年8月
內容簡介:

這是一部基于Nginx新版本和云原生應用場景系統講解Nginx的著作,是作者十余年運維經驗的總結。本書從應用、運維以及與Kubernetes和微服務集成3個維度對Nginx的基礎知識、工作原理、核心應用、運維管理、集成擴展等重點內容進行了全面、細致的講解。完全以實戰為導向,包含大量的配置案例和示例代碼,能幫助讀者快速掌握并在實際工作中熟練應用Nginx。

本書共13章,在邏輯上可分為4個部分。

第一部分 Nginx介紹(第1∼4章)

首先,簡要分析了Nginx的架構特點及實現原理;其次,講解了Nginx及其衍生版本Tengine、OpenResty的編譯與部署;接著,全面介紹了Nginx的核心配置指令;最后,講解了動態賦值、訪問控制和數據處理這3個Nginx的HTTP功能模塊配置指令。

第二部分 應用實戰(第5∼8章)

分別介紹Nginx在Web服務、代理服務、緩存服務和負載均衡等方面的應用實戰,對于所涉及的每個模塊,不僅詳細解析了相關的技術要點,還給出了具體的配置指令和配置樣例。

第三部分 運維管理(第9∼11章)

首先介紹Nginx的日志配置及基于ELK的日志分析,其次講解Nginx的狀態監控配置,以及如何利用監控工具Prometheus、Zabbix實現對Nginx的監控管理;最后介紹如何基于LVS、Keepalived搭建Nginx集群負載均衡架構,以及如何結合Jenkins、GitLab和Ansible快速搭建Web化的Nginx集群配置管理框架。

第四部分 Nginx與Kubernetes和微服務的應用集成(第12、13章)

分別介紹Nginx在Kubernetes、微服務架構中的應用,包括在Kubernetes中Nginx Ingress 的部署、管理與配置,以及基于OpenResty的開源微服務網關軟件Kong的部署與應用。



Nginx作為一款優秀的開源Web服務器軟件,因具有性能穩定、高并發能力強、資源耗用低及高性能的負載均衡等特點,被眾多互聯網公司廣泛應用于實際生產項目中。因此,它也成為每個互聯網技術人員的必備技能。

本書基于新版Nginx,從運維與開發工作的實際需要出發,首先介紹Nginx源碼架構、編譯及部署、核心配置指令、HTTP功能模塊等基礎知識;接著,重點講解Nginx在Web服務、代理服務、緩存服務、負載均衡等方面的應用實戰;然后,深入講解Nginx日志管理、監控配置及管理、集群負載與配置管理等運維管理方法;最后,介紹Nginx在Kubernetes、微服務架構中的應用。書中詳細解析了所涉及的專業術語和技術要點,并通過大量配置樣例進行演示,力求讓讀者真正理解Nginx,用好 Nginx。



通過本書,你將:

熟練掌握Nginx的配置指令使用方法

了解Nginx作為Web服務的應用實現

了解Nginx對相關通信協議的處理方法

熟悉Nginx作為代理、緩存、負載均衡的應用實現

提升Nginx日常運維管理中的日志和監控管理能力

了解Nginx集群的搭建與配置管理方法

了解Nginx在Kubernetes和微服務架構中的應用實現

掌握軟件的Docker化部署方法
目錄:

第1章 Nginx概述1
1.1 Nginx的不同版本1
1.1.1 開源版Nginx2
1.1.2 商業版Nginx Plus3
1.1.3 分支版本Tengine4
1.1.4 擴展版本OpenResty4
1.2 Nginx源碼架構淺析5
1.2.1 多進程模型6
1.2.2 工作流機制9
1.2.3 模塊化12
第2章 Nginx編譯及部署14
2.1 編譯環境準備14
2.1.1 操作系統的準備14
2.1.2 Linux內核參數15
2.2 Nginx源碼編譯17
2.2.1 Nginx源碼獲取17
2.2.2 編譯配置參數17
2.2.3 代碼編譯20
2.2.4 添加第三方模塊21
2.3 Tengine源碼編譯21
2.3.1 Tengine源碼獲取21
2.3.2 編譯配置參數22
2.3.3 代碼編譯22
2.3.4 Tengine集成的模塊22
2.4 OpenResty源碼編譯24
2.4.1 OpenResty源碼獲取24
2.4.2 編譯配置參數24
2.4.3 代碼編譯25
2.4.4 OpenResty集成的模塊26
2.5 Nginx部署28
2.5.1 環境配置28
2.5.2 命令行參數28
2.5.3 注冊系統服務29
2.6 Nginx的Docker容器化部署30
2.6.1 Docker簡介30
2.6.2 Docker環境安裝31
2.6.3 Dockerfile常用命令及編寫31
2.6.4 Nginx Docker運行33
第3章 Nginx核心配置指令35
3.1 Nginx配置文件解析35
3.1.1 配置文件目錄36
3.1.2 配置文件結構36
3.1.3 配置文件中的計量單位38
3.1.4 配置文件中的哈希表39
3.2 Nginx的進程核心配置指令39
3.2.1 進程管理39
3.2.2 進程調優40
3.2.3 進程調試44
3.2.4 事件處理45
3.2.5 核心指令配置樣例48
3.3 HTTP核心配置指令48
3.3.1 初始化服務49
3.3.2 HTTP請求處理55
3.3.3 訪問路由location65
3.3.4 訪問重寫rewrite69
3.3.5 訪問控制73
3.3.6 數據處理76
3.3.7 關閉連接85
3.3.8 日志記錄87
3.3.9 HTTP核心配置樣例87
第4章 Nginx HTTP模塊詳解91
4.1 動態賦值功能模塊91
4.1.1 根據瀏覽器動態賦值92
4.1.2 根據IP動態賦值94
4.1.3 根據IP動態獲取城市信息95
4.1.4 比例分配賦值98
4.1.5 變量映射賦值98
4.2 訪問控制功能模塊101
4.2.1 訪問鏡像模塊101
4.2.2 referer請求頭控制模塊102
4.2.3 連接校驗模塊104
4.2.4 源IP訪問控制模塊105
4.2.5 基本認證模塊106
4.2.6 認證轉發模塊107
4.2.7 用戶cookie模塊109
4.2.8 并發連接數限制模塊112
4.2.9 請求頻率限制模塊114
4.3 數據處理功能模塊116
4.3.1 首頁處理116
4.3.2 圖片處理118
4.3.3 響應處理121
4.3.4 數據修改124
4.3.5 gzip壓縮126
第5章 Nginx Web服務應用實戰130
5.1 靜態文件服務器的搭建130
5.1.1 靜態Web服務器130
5.1.2 文件下載服務器131
5.1.3 偽動態SSI服務器132
5.2 HTTPS安全服務器的搭建137
5.2.1 配置指令137
5.2.2 HTTPS基本配置139
5.2.3 HTTPS密鑰交換算法141
5.2.4 HTTPS會話緩存142
5.2.5 HTTPS雙向認證配置143
5.2.6 HTTPS吊銷證書配置144
5.2.7 HTTPS配置樣例145
5.3 PHP網站搭建146
5.3.1 FastCGI模塊指令146
5.3.2 PHP環境安裝150
5.3.3 PHP網站配置樣例151
5.3.4 FastCGI集群負載及緩存152
5.4 Python網站的搭建154
5.4.1 CGI、FastCGI、SCGI、WSGI154
5.4.2 uWSGI模塊指令155
5.4.3 Python網站的搭建159
5.5 XSLT轉換服務器162
5.5.1 模塊配置指令162
5.5.2 XSLT服務器配置樣例162
5.6 偽流媒體服務器的搭建164
5.6.1 模塊配置指令165
5.6.2 偽流媒體配置樣例165
5.7 HTTP增強協議服務器的搭建168
5.7.1 HTTP/2協議服務168
5.7.2 WebDAV協議服務169
第6章 Nginx代理服務應用實戰173
6.1 HTTP代理173
6.1.1 模塊指令173
6.1.2 正向代理177
6.1.3 HTTP的反向代理179
6.1.4 HTTPS的反向代理181
6.1.5 反向代理的真實客戶端IP184
6.2 TCP/UDP代理185
6.2.1 stream核心模塊185
6.2.2 stream輔助模塊187
6.2.3 TCP/UDP代理194
6.2.4 基于SSL的TCP代理197
6.2.5 TCP/UDP代理的真實客戶端IP199
6.3 gRPC代理202
6.3.1 gRPC介紹202
6.3.2 gRPC模塊指令202
6.3.3 gRPC反向代理配置204
第7章 Nginx緩存服務應用實戰206
7.1 Web緩存206
7.1.1 客戶端緩存207
7.1.2 正向代理緩存211
7.1.3 內容分發網絡211
7.1.4 反向代理緩存212
7.2 Nginx緩存模塊213
7.2.1 代理緩存模塊213
7.2.2 Memcached緩存模塊218
7.3 Nginx緩存應用219
7.3.1 代理緩存服務器219
7.3.2 鏡像緩存應用221
7.3.3 Memcached緩存應用223
7.3.4 客戶端緩存控制226
7.4 緩存服務的管理與維護227
7.4.1 模塊編譯228
7.4.2 模塊指令228
第8章 Nginx負載均衡應用實戰231
8.1 Nginx負載均衡模塊231
8.1.1 服務器配置指令232
8.1.2 負載均衡策略指令234
8.2 負載均衡策略236
8.2.1 輪詢236
8.2.2 一致性哈希237
8.2.3 IP哈希239
8.2.4 最少連接240
8.2.5 隨機負載算法241
8.3 負載均衡配置242
8.3.1 負載均衡的長連接242
8.3.2 upstream的容錯機制245
8.3.3 動態更新upstream248
8.3.4 HTTP負載均衡配置253
8.3.5 FastCGI負載均衡配置253
8.3.6 uWSGI負載均衡配置254
8.3.7 gRPC負載均衡配置254
8.3.8 Memcached負載均衡配置255
8.4 TCP/UDP負載均衡255
8.4.1 TCP/UDP負載均衡255
8.4.2 TCP/UDP負載均衡的容錯機制257
第9章 Nginx日志管理259
9.1 Nginx日志配置259
9.1.1 訪問日志259
9.1.2 錯誤日志263
9.1.3 日志歸檔Logrotate264
9.1.4 日志輸出到syslog268
9.2 Nginx日志收集分析269
9.2.1 ELK簡介269
9.2.2 ELK安裝271
9.2.3 Nginx日志分析276
第10章 Nginx監控配置及管理278
10.1 Nginx連接狀態監控278
10.1.1 Nginx連接狀態278
10.1.2 Nginx連接狀態模塊指令280
10.1.3 基于Zabbix的連接狀態監控280
10.2 HTTP主機狀態監控282
10.2.1 模塊編譯282
10.2.2 模塊配置指令282
10.2.3 主機狀態監控配置286
10.3 TCP/UDP主機狀態監控287
10.3.1 模塊編譯287
10.3.2 模塊配置指令287
10.3.3 TCP/UDP主機狀態監控配置290
10.4 監控工具Prometheus291
10.4.1 Prometheus簡介291
10.4.2 Prometheus部署292
10.4.3 監控HTTP主機狀態296
10.4.4 監控TCP/UDP主機狀態299
10.4.5 Prometheus監控告警302
10.5 監控工具Zabbix304
10.5.1 Zabbix簡介305
10.5.2 Zabbix環境搭建306
10.5.3 Zabbix Agent安裝310
10.5.4 Zabbix獲取Prometheus數據311
第11章 Nginx集群負載與配置管理314
11.1 Nginx集群負載315
11.1.1 多層負載均衡架構315
11.1.2 LVS簡介315
11.1.3 Keepalived簡介320
11.1.4 Nginx集群負載搭建327
11.2 Nginx集群配置管理331
11.2.1 Nginx集群配置管理規劃331
11.2.2 配置歸檔工具GitLab335
11.2.3 配置修改工具Ansible336
11.2.4 配置發布工具Jenkins338
11.2.5 Nginx配置管理實例340
第12章 Nginx在Kubernetes中的應用351
12.1 Kubernetes簡介352
12.1.1 Kubernetes架構簡述352
12.1.2 Kubernetes相關術語353
12.1.3 Kubernetes集群部署360
12.1.4 Kubernetes網絡通信366
12.2 Nginx Ingress375
12.2.1 Nginx Ingress原理375
12.2.2 集成的第三方模塊376
12.2.3 安裝部署378
12.2.4 日志管理383
12.2.5 監控管理384
12.3 Nginx Ingress配置385
12.3.1 配置映射ConfigMap385
12.3.2 注解Annotations396
第13章 Nginx在微服務架構中的應用411
13.1 認識微服務411
13.1.1 為什么需要微服務411
13.1.2 微服務的技術特點414
13.1.3 微服務的進化416
13.2 基于Nginx的微服務網關418
13.2.1 Nginx產品組件419
13.2.2 開源微服務網關Kong419
13.2.3 安裝部署423
13.2.4 微服務網關應用427
序: