MySQL讀寫分離技術php
sphinx和mongodbhtml
通常都是拿nginx做爲負載均衡器使用。Apache仍是web市場老大。全球的市場份額大概在(60%),可是全球前 top1000 的web網站中,nginx佔據首位。linux
內容nginx |
重要性c++ |
nginx簡介web |
※sql |
常見web服務器分類mongodb |
※數據庫 |
哪些地方在用nginxvim |
※ |
ngnix的安裝(Linux下) |
※※ |
lnmp搭建(lamp) |
※※ |
ngnix負載均衡器配置(工做) |
※※ |
擴展知識(tengine 淘寶) |
※ |
nginx是一個高性能的web服務器,同時也是一個郵件代理服務器,同時仍是一個負載均衡器。
1. web服務器:相似Apache(httpd)提供web服務器(用的其次)
2. 郵件代理服務器:主要用來作郵件的轉發(nginx早起的設計也是爲了郵件轉發,初衷,用的最少)
3. 負載均衡器:用來轉發用戶的web請求,給web服務器來處理(尤爲是在均衡器的時候,有其獨特的優點,這也是目前互聯網用它最多的地方)
負載均衡器:軟件和硬件
軟件:nginx(七層,簡單配置)和lvs(四層,功能強大)
硬件:f5 (遊戲和銀行)
負載均衡集羣:由負載均衡器組成的集羣就是負載均衡集羣
集羣:就是多臺服務器爲了完成某一個相同的任務而組成的架構。(多臺服務器完成)
若是給服務器集羣增長一個備用的監控(高可用集羣)
高可用集羣衡量的標準:一年中無端障的時間/(一年中無端障的時間+修復的時間)
通常是9的數量來衡定。若是沒有修復(100%) 99.9% 99.99% 99.999%
若是是5個9 一年下來故障的時間大概就是 5 分鐘。
建議:遊戲公司、電商公司
遊戲公司:轉崗(php開發、Linux管理、MySQL、自動化運維、erlang 熱備份)-》大數據
電商公司:純開發新的系統,主要是功能的開發和維護。
建站公司:若是技術相對來講較弱。
微信:相對來講不建議去了。(微信分銷系統)
【------內存----】 軟件(操做系統)開機--- 自舉 BIOS(cmos硬件設備---生產商寫入一段代碼 讀)---硬盤(分區 MBR 主引導記錄--- 分區信息--操做系統C盤)
格式化磁盤(數據所有存在)----- 使用專門的工具--- 0 1 重寫
nginx是由俄國人開發,也開發卡巴斯基殺毒軟件。還開發了一個叫作sphinx的軟件(中文分詞搜索)。
因爲其性能很是優越,因此在中國的淘寶公司對其作了二次開發,造成了一款更適合在國內使用的web服務器,叫作tengine(web服務器)。目前不少國內大型站點,基本都是使用的tengine。
http://hustskyking.cnblogs.com/
問題:爲何nginx(tengine)可以有很是好的性能,支撐更大的併發訪問?
對於1u服務器(2w---dell服務器 性價比最高)這樣的服務器使用nginx支撐靜態的併發請求大概在3-5w併發沒問題。
主要因爲其架構設計的合理。而且因爲Apache是早起的web服務器,壓根就沒有考慮大併發。而nginx是後期之秀,其設計的初衷也是爲了大併發,主要解決了c10k的問題。
設計:epoll event 基於事件回調模型
問題:什麼是C10k?
答:c:併發,意思就是當網站的併發數量達到10k以上,這個時候網站總體的性能就會急劇降低,須要使用新的的架構來設計(基於事件模型 event),nginx應用而生。
參考:http://blog.csdn.net/jysg9/article/details/7901321
http://rdc.gleasy.com/%E5%A6%82%E4%BD%95%E5%81%9A%E5%88%B0c100k_1.html
http://joyexpr.com/2013/11/22/c100k-4-kernel-tuning/
Apache爲何這麼流行:主要
明白:不少公司在效率和穩定性須要選擇的狀況下,有限考慮的是穩定性。
問題:nginx能夠取代Apache服務器嗎?
問題:nosql數據庫能取代關係型數據庫(MySQL)嗎?
答:nginx從目前來看,是沒法取代Apache這類web服務器。主要是因爲Apache很是穩定和模塊衆多,而且已經擁有強大的市場。只能說着兩個產品能夠相輔相成的工做。誰都離不開誰了。
cdn的使用
tengine使用
淘寶使用
在Linux下作源碼編譯安裝
注意:
# pcre庫安裝下,須要注意,安裝這個庫文件的時候,不須要指定安裝路徑 ./configure 便可
# netstat -tunple | grep 80
# ps aux | grep httpd
# iptbales -F (flush 刷新)
# setenforce 0
上面兩種方式都是暫時關閉
注意:a. vsftpd是否開啓
# service vsftpd status
# service vsftpd start | stop
b. 防火牆是否關閉
# iptables -L 查看
# iptables -F 關閉(F -- flush)
# service iptables stop 關閉
# service iptables stop 關閉防火牆
c. selinux是否關閉
selinux 是Linux下的一個安全管理軟件,因爲其安全級別很是高。(建議關閉使用)
# getenforce 查看
# setenforce 0 關閉
注意:這個關閉時基於會話。(只針對當前用戶生效)
有時候須要全局生效,對全部的用戶所有生效
解決方案:更改配置文件便可
可使用
# file fileName 查看文件類型
關閉selinux
# cd /etc/selinux/
# ls
# vim config
查看
修改
# cd /home/NAME
#cp nginx-1.8.0.tar.gz pcre-8.34.tar.gz /usr/local/src/
源碼目錄:
查看
# ./configure
# make 編譯
# make install
解壓
# tar -zxvf nginx-1.8.0.tar.gz
編譯安裝
# ./configure --prefix=/usr/local/nginx 收集操做的信息(檢查c++編譯器是否存在)
# make
# make install
安裝成功,查看
8. 啓動服務
注意:啓動的時候須要檢查 80 端口是否佔用
瀏覽器查看
注意:沒有瀏覽器的狀況下,可使用
# curl -I http://localhost
-I 響應頭
注意:一旦這個服務啓動,會額外生成不少文件和文件夾
注意:若是服務器啓動後,再其次啓動會怎麼樣?
解決方案:關閉或者重啓
目錄相關:
備份配置文件
查看配置文件內容(格式)
mime.types
ActiveX腳本還有flash
長鏈接
虛擬主機配置:
目錄
httpd段:
安全傳輸
注意:互聯網上全部的服務都是基於TCP/IP的連接,而後根據端口區分服務
# /usr/local/nginx/sbin/nginx -t
注意:nginx的好處在於,重啓能夠直接不關閉服務器狀況下,直接讀取配置文件信息。
# /usr/local/nginx/sbin/nginx -s reload 從新加載配置文件,可是不關閉服務
注意:php也能做爲一個單獨的服務來運行,這種運行的模式叫作php-fpm模式,不在做爲Apache一個模塊使用。有單獨的進程,端口,至關於一個軟件運行。
php的fpm運行方式:使得php能夠單獨的做爲一個服務運行,而不用做爲一個模塊被加載後才能使用。做爲獨立服務的時候,使用的端口是 9000 端口。nginx請求動態文件和 php-fpm服務通訊的時候 使用的協議爲 fast-cgi 協議
cgi:common getway interface
注意:php-fpm須要 php-5.3.12之後的版本默認是支持
以前其餘的版本須要打補丁。
編譯
# ./configure --prefix=/usr/local/php --enable-fpm
# make
#make install
php腳本的動態文件目錄是本身能夠隨意的設定的。
-s signal 信號 reload 信號
# /usr/local/nginx/sbin/nginx -s reload
注意:直接啓動報錯,須要知道配置文件信息
解決方案:
查看是否成功啓動
注意:有一個php.ini配置的問題
解決:去源代碼包copy便可
解決現實:
能夠去處理web請求,將web請求分發給多個web服務器來響應的軟件或者硬件
基於IP的
81端口
82端口
注意:理論上來講,81主機和82主機的網站根目錄裏面的內容應該一致。默認是基於輪詢的方式
能夠修改成基於ip_hash的方法
tengine是由淘寶發起一個基於nginx的web服務器,作了二次開發
參考文檔:http://tengine.taobao.org/book/chapter_05.html
目錄查看
注意:檢測端口 80
查看
網站根目錄
其餘命令和nginx徹底同樣
擴展