Ngnix 安裝與使用

高性能web服務器-ngnix

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簡介

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://tengine.taobao.org/

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/

 

 

 

常見web服務器的分類

  1. httpd:Apache,是一款很是穩定的web服務器,而且它是基於模塊而設計(php,rewrite。。。),可是有一個弊端,就是使用的內存開銷很是大
  2. nginx:後期,其主要特性仍是用於 負載均衡器和web服務器。在處理併發的問題上,尤爲獨特的優點,可是有一個弊端,相對不是很穩定。使用的內存開銷很是小,處理1000個非活動的連接,大概須要不要2M的內存。
  3. lighttpd(小型):主要用於作 圖片服務器。早期的豆瓣是有使用。
  4. tomcat:這個是Java
  5. IIS:Windows的一個web服務器,常和Windows server 和 sql server一塊兒使用

     

    Apache爲何這麼流行:主要

  6. 早期開發的,不少系統基於它開發,不便於作更換。
  7. 早期開發,模塊衆多(php 、Rewrite、header。。。。),文檔齊全
  8. Apache很是的穩定。

    明白:不少公司在效率和穩定性須要選擇的狀況下,有限考慮的是穩定性。

     

    問題:nginx能夠取代Apache服務器嗎?

    問題:nosql數據庫能取代關係型數據庫(MySQL)嗎?

    答:nginx從目前來看,是沒法取代Apache這類web服務器。主要是因爲Apache很是穩定模塊衆多,而且已經擁有強大的市場。只能說着兩個產品能夠相輔相成的工做。誰都離不開誰了。

     

    哪些地方在使用?

  9. 淘寶(tengine)
  10. 搜狐
  11. 網易
  12. 趕集

    cdn的使用

    tengine使用

    淘寶使用

    nginx搭建使用

    在Linux下作源碼編譯安裝

    注意:

  13. nginx的安裝須要依賴pcre庫,因此須要先安裝

    # pcre庫安裝下,須要注意,安裝這個庫文件的時候,不須要指定安裝路徑 ./configure 便可

  14. 檢測一下操做系統的 80端口是否被佔用

    # netstat -tunple | grep 80

    # ps aux | grep httpd

  15. 關閉一下防火牆和selinux

    # iptbales -F (flush 刷新)

    # setenforce 0

    上面兩種方式都是暫時關閉

     

     

    編譯安裝

  16. 下載代碼

    官網:http://nginx.org/en/

     

  17. 上傳nginx源碼和pcre庫源碼

    注意: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

    查看

    修改

     

    1. 上傳文件

       

     

    1. 將源碼文件移動到(/usr/local/src/)

      # cd /home/NAME

      #cp nginx-1.8.0.tar.gz pcre-8.34.tar.gz /usr/local/src/

      源碼目錄:

    2. 編譯安裝,pcre庫,解壓

      查看

    3. 編譯安裝pcre ( 不須要指定安裝路徑

      # ./configure

      # make 編譯

       

      # make install

       

    4. 安裝nginx軟件

      解壓

      # 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段:

    安全傳輸

     

     

    虛擬主機的配置(基於IP的虛擬主機)

    注意:互聯網上全部的服務都是基於TCP/IP的連接,而後根據端口區分服務

  18. 輸入地址
  19. 作DNS解析
  20. 根據IP地址訪問主機(創建TCP/IP連接)
  21. 而後訪問端口
  22. 開始根據協議傳遞文件(http)
  23. 服務器端構建響應報文
  24. 傳遞
  25. 瀏覽器解析
  26. 瀏覽器渲染
  27. 見到信息

     

  28. 增長server段配置

     

  29. 語法檢測

    # /usr/local/nginx/sbin/nginx -t    

  30. 重啓nginx

    注意:nginx的好處在於,重啓能夠直接不關閉服務器狀況下,直接讀取配置文件信息。

    # /usr/local/nginx/sbin/nginx -s reload 從新加載配置文件,可是不關閉服務

     

  31. 建立網站根目錄

     

  32. 瀏覽器訪問

     

    lnmp搭建

    注意:php也能做爲一個單獨的服務來運行,這種運行的模式叫作php-fpm模式,不在做爲Apache一個模塊使用。有單獨的進程,端口,至關於一個軟件運行。

     

    php的fpm運行方式:使得php能夠單獨的做爲一個服務運行,而不用做爲一個模塊被加載後才能使用。做爲獨立服務的時候,使用的端口是 9000 端口。nginx請求動態文件和 php-fpm服務通訊的時候 使用的協議爲 fast-cgi 協議

    cgi:common getway interface

     

  33. Linux
  34. nginx
  35. MySQL(不用)
  36. php搭建

     

    php-fpm運行方式搭建

    注意:php-fpm須要 php-5.3.12之後的版本默認是支持

    以前其餘的版本須要打補丁。

  37. 下載php源碼
  38. 上傳(/usr/local/src/)

  39. 解壓和安裝

    編譯

    # ./configure --prefix=/usr/local/php --enable-fpm

    # make

     

    #make install

     

     

    修改nginx的配置文件,能夠去調用php-fpm方式

  40. 修改nginx配置文件

    php腳本的動態文件目錄是本身能夠隨意的設定的。

     

  41. 從新讀取配置文件

    -s signal 信號 reload 信號

    # /usr/local/nginx/sbin/nginx -s reload

     

  42. php-fpm目錄查看

    注意:直接啓動報錯,須要知道配置文件信息

    解決方案:

  43. 啓動php-fpm模式

     

    查看是否成功啓動

     

  44. 修改nginx的配置文件,而且從新載入

     

  45. 建立動態腳本的訪問目錄

  46. 瀏覽器查看

    注意:有一個php.ini配置的問題

    解決:去源代碼包copy便可

    解決現實:

     

    負載均衡器使用

    能夠去處理web請求,將web請求分發給多個web服務器來響應的軟件或者硬件

     

  47. 建立兩臺虛擬主機

    基於IP的

    81端口

    82端口

     

    注意:理論上來講,81主機和82主機的網站根目錄裏面的內容應該一致。默認是基於輪詢的方式

    能夠修改成基於ip_hash的方法

    tengine的搭建使用

    tengine是由淘寶發起一個基於nginx的web服務器,作了二次開發

    官網:http://tengine.taobao.org/

    參考文檔:http://tengine.taobao.org/book/chapter_05.html

     

    安裝

  48. 下載

     

  49. 上傳

  50. 編譯安裝

  51. 使用

    目錄查看

  52. 啓動

    注意:檢測端口 80

    查看

    網站根目錄

     

    其餘命令和nginx徹底同樣

     

    擴展

  53. lnmp搭建相對來講比較複雜

    網站:http://lnmp.org/

     

  54. 中文文檔
  55. 看淘寶的tengine:http://tengine.taobao.org/
  56. 中文站點:http://www.nginx.cn/doc/

     

  57. tengine 目前在國內的市場很大

    網站:http://tengine.taobao.org/

相關文章
相關標籤/搜索