計劃:
簡單用過,看書全面瞭解下。
1、《實戰nginx:取代apache的高效能Web伺服器》
內容:安裝、配置和最佳化、PHP FastCGI、JSP、反向 Proxy、負載平衡、Rewrite、緩衝、模組介紹
按順序過一遍,重點看反向 Proxy、負載平衡、rewrite、緩衝和模組介紹。
2、《深入理解 Nginx:模組開發與架構解析 / 陶輝著 . —北京:機械工業出版社,2013.3》978-7-111-41478-0
這本書講:如何基於nginx開發擴充模組。
第一部分講怎麼用,然後分析架構,講怎麼開發。
“Nginx 非常適合開發在傳輸層以TCP對外提供服務的伺服器程式。”
讀第一部分,其他部分略讀。
3、《學習nginx http server》
內容:安裝、http配置、rewrite ssi、php、apache
最後簡單過一下,查漏補缺
Book 1:《實戰nginx:取代apache的高效能Web伺服器》
---------------------------------
13:25 2014-05-18 1、簡介
nginx可以使用epoll和kqueue網路io模型。
---------------------------------
13:29 2014-05-18 2、安裝和配置
http://www.nginx.net/
Mainline version 1.7,Stable version 1.6,選1.7。
windows版,linux版都要。
apt庫裡有沒有呢?最新版多少?
http://nginx.org/en/download.html
http://nginx.org/download/nginx-1.7.0.tar.gz
http://nginx.org/download/nginx-1.7.0.zip
源碼線上看:http://trac.nginx.org/nginx/browser。
測試過的作業系統和平台
Linux 2.2 — 3 / i386; Linux 2.6 — 3 / amd64;
Windows XP, Windows Server 2003.
我的實驗環境:Windows 2008 Server R2裡面一個Ubuntu 14.04的虛擬機器。
tar
./configure [各種選項]
make
make install
啟動
nginx -c nginx.confg
查看pid
ps -ef | grep nginx
停止
kill -QUIT pid
kill -TERM pid
kill -9 nginx
檢查設定檔
nginx -t -c nginx.config
平滑重啟
kill -HUP pid
-USR2 : 平滑升級
-USR1 : 重新開啟記錄檔
-WINCH : 從容關閉work process
---------------------------------
14:09 2014-05-18 3、基本配置和最佳化
中間浪費了三個半小時
17:24 2014-05-18 GO ON
nginx.config 結構
events{
}
http{
server{
}
server{
}
}
nginx支援多種虛擬機器主機配置:基於ip的,基於網域名稱的,基於連接埠的。
log_format 可以引用好多變數!
附錄會有一個完整列表的,含各個module的。
經過反向 Proxy後,$http_x_forwarded_for才是用戶端真實IP,$remote_addr不是。
瀏覽器側緩衝務必設定,特別是針對圖片、js、css、swf等變化少的內容。
---------------------------------
18:14 2014-05-18 4、FastCGI
PHP or Perl
location ~ .*\.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
設定開機自動啟動
Linux操作是我要加強的,有必要找本書看看。網路設定啊,系統設定啊,指令碼辨析啊啥的。
vi /etc/rc.local
---------------------------
ulimit -SHn 65535
/../php/sbin/php-fpm start
/../sbin/nginx
---------------------------------
18:40 2014-05-18 5、JSP
嗯!提起精神。
upstream tomcat_server{
server 127.0.0.1:8000;
}
這裡可以好多Server。可以ip_hash,可能負載不均衡,但不用複製Session。複製Session會把叢集中每台伺服器記憶體搞滿。
server{
location ~ \.(jsp|jspx|do)?${
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://tomcat_server;
}
}
---------------------------------
18:46 2014-05-18 6、HTTP負載平衡和反向 Proxy
複習一下OSI
1、物理
2、資料鏈路
3、網路:IP、IPX
4、傳輸! TCP、UDP 開始重要了
5、會話
6、表示
7、應用:HTTP、FTP、Telnet、SNMP等。
常見的負載平衡方案在第4層/第7層。
傳說中的F5。高大上的裝置。有國產便宜的嗎?深信服、華3。
庶民的LVS(Linux Server)找書專門看看
nginx
down 離線
backup 非backup的全宕機才啟用
ip_hash 類似session_sticky
upstream
proxy_pass
fastcgi_pass
nginx雙機高可用:
漂移IP;寫指令碼後台監視,離線轉移。
這個應該是用keepalived實現?找文章看看。單機可負載十萬,Load Balance的需求可能不大,但HA的需求太大了。是否有module支援呢?
---------------------------------
19:23 2014-05-18 7、Rewrite
各種Regex
PCRE
if rewrite set return break
= 等於
!= 不等於
~ 區分大小寫
~* 不區分大訊息
-f 檔案存在
!-f檔案不存在
-d 目錄存在
-e 檔案或目錄存在
-x 檔案可執行
() 後面可以通過$1-$9訪問
set
7.2.7 可以用到的全域變數
$http_cookie
$args
7.3 PCRE文法!!
\ 轉移字元
^ 行首
$ 行末
* 前面的0次或n次
+ 前面的1次或n次
?前面的0次或1次
各種栗子
---------------------------------
19:56 2014-05-18 8、模組開發
高手比學。
設定檔包括:main、server、upstream、location
不能動態添加模組,需要編譯時間編譯到二進位檔案中。
handlers處理模組
filters或綠模組
load-balancers負載平衡模組
8.1
模組相當於aop中的方面,可以掛載在不同處理事件。
往下不細看了。
---------------------------------
20:02 2014-05-18 9、緩衝
出名的Squid
proxy_cache指令
新浪網開發的ncache模組,充分利用多核,比squid快
20:29 2014-05-18
proxy_cache_path
proxy_cache_method
proxy_cache_valid
proxy_cache_key
./configure --add-module=../ngx_cache_purge-1.0
建立 proxy_temp_path 和 proxy_cache_path 必須在同一分區
---------------------------------
20:41 2014-05-18 10、案例
新浪視頻
金山逍遙網
CMS
視頻網站
rsync,稍後看看。
---------------------------------
21:05 2014-05-18 11、非典型應用
HTTPS
./configure --with-http_ssl_module
自發認證
建立私密金鑰
openssl genrsa -des3 -out api.bz.key 1024
openssl req -new -key aop.bz.key -out api.bz.csr
openssl rsa -in api.bz.key -out api.bz_nopass.key
建立認證
openssl req -new -x509 -days 3650 -key api.bz_nopass.key -out api.bz.crt
得到私密金鑰檔案:api.bz_nopass.key
認證:api.bz.crt
server{
ssl on;
ssl_certificate api.bz.crt;
ssl_certificate_key api.bz_nopass.key;
}
向CA申請認證
同樣,產生私密金鑰
http://startssl.com 提供免費認證。
FLV視頻伺服器
HTTP下載,或者流媒體(Flash Media Server/RTMP)
nginx提供flv stream模組,支援拖動
./configure --with-http_flv_module
limit_rate_after 3m
limit_rate 512k
添加主要畫面格
找個flv播放器
流媒體fms/red5負載平衡
VPS(Virtual Private Server)虛擬機器
最大指標是記憶體。
正向 Proxy
---------------------------------
21:27 2014-05-18 12、核心模組
---------------------------------
21:34 2014-05-18 13、標準HTTP模組
---------------------------------
21:53 2014-05-18 14、其他模組
12、13、14是參考手冊,應該仔細通讀,隨時備查。
---------------------------------
21:55 2014-05-18 15、郵件模組
這個也很實用!
Book 2:
迅速把 《深入理解 Nginx:模組開發與架構解析》前3章過一遍吧。
第1章 安裝
講得非常細,明天上班路上看吧。
第2章 配置
非常詳細!
第3章 如何編寫HTTP模組
太細了,照著做可以做一個Hello,world!為什麼我有種想寫c的衝動。
nginx的設計和代碼都很棒,真想仔細看看。
可惜時間上不好安排。
有舍必有得。
Book3、《學習nginx http server》
靠!
連linux基本命令都講,從mkdir講起。
入門必讀!!
建立使用者組,確實不會,應該找時間好好看看。
Ch1 linux基本操作
Ch2 安裝 22:11 2014-05-18
Ch3 配置 22:12 2014-05-18
Ch4 HTTP配置 22:13 2014-05-18
Ch5 模組配置 22:14 2014-05-18
Ch6 PHP、Python 22:15 2014-05-18
Ch7 Apache
Ch8 從Apache移植
22:17 2014-05-18 吃了感冒藥,困得快不行了。
以上就介紹了nginx讀書筆記,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。