nginx的三大功能(之一服務器)

nginx的三大功能(之一服務器)php

  1. nginx ("engine x") 是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP服務器。其主要有三個功能:
  2. (1)服務器(基本)
  3. (2)負載均衡
  4. (3)nginx的緩存功能
  5. 今天先講述利用nginx如何搭建一個web服務器:
  6. 若是已經作過web開發的,就熟悉如何取搭建一個基本的web服務器而來跑本身的項目,在當前基本上經常使用的IIS(windows)Apache(Linux),nginx是後期之秀,是在最近幾年才被企業所使用的服務器,其實在衆多服務器中能脫穎而出,是有其自身優勢的,據統計Apache使用率61.9%(比較穩定),IIs使用率16.5%,該服務器易用前者比較容易搭建,而nginx如今佔用使用率16.1%(後期之秀,效率比較高)。從這三個的比較咱們能看出,nginx的主要特性使效率比較高,也使得成爲如今的企業選擇之一。
  7. 接下來,首先來看一下nginx和apache之間的區別,也使得咱們在之後選擇服務的時候,能根據本身所須要的功能選擇本身須要的服務器:
  8. 1.nginx相對於apache的優點:
  9. 首先nginx是輕量級的,若是使用其做爲web服務,起來起來時佔用的內存資源比較少,他能夠支持更多的併發鏈接,體現更高的效率。其實在高併發的狀況,使用nginx要比apache效率高的不少,nginx可以支持高達50000個併發鏈接數的響應,這主要緣由是nginx選擇的epoll and kqueue(可擴展的事件複用技術),感興趣的能夠了解一下epoll and kqueue技術,其實select()和poll()的工做方式很是相似。
  10. (1)抗併發,nginx請求是異步非阻塞的,而apache是阻塞型的,在高併發下,nginx能保持低資源、低消耗高性能。
  11. (2)nginx原本就是一個反向代理服務器,其負載均衡能力比較突出,nginx既能夠在內部支持Rails(符合實際高效的web開發框架,其結合了php和java來發的一些優勢)和php程序對外部進行服務,能夠做爲Http服務器對外進行服務。Nginx採用C語言進行開發,不管是在系統開銷仍是內存使用率都比Perlbal 要好不少。
  12. 2.apache相對於nginx的優勢:
  13. 重寫功能apache要比nginx的強大
  14. nginx通常適合作靜態和反向代理,而動態代理通常要考apache完成
  15. apache相對於使用時間比較長,bug比較少,而nginx的bug比較多
  16. 3.核心區別
  17. apache是同步多進程模型一個鏈接對應一個進程,而nginx是異步的,多個鏈接(萬級別)能夠對應一個進程。
  18. **_
  19. 繼續上面完成內容;

  20. _**
  21. 通常來講須要具備性能的web服務,最好選擇nginx,若是不須要性能只求穩定則最好的選擇apache便可,apache的各類功能模塊實現的要比nginx好,而且可配置項也多。epoll網絡IO模型是nginx處理性能高的根本理由,但並非全部的狀況下都是epoll的性能高,若是自己提供靜態服務的,則apache的select模型要比nginx的epoll性能高。
  22. Epoll:
  23. 對socket數量不限制
  24. 操做無限制:有活躍socket,內核訪問該socket的callback,不須要遍歷(nginx效率高的緣由)
  25. select
  26. socket數量限制:該模式可操做的socket數有限,由FD_SETSIZE(C++)中的來決定,內核默認32*32=1024
  27. 操做限制:有活躍的socket,內核訪問socket時,無論哪一個活躍的socket都要遍歷一遍(apache慢的緣由)

安裝nginx 官方最新的是nginx-1.3.16.tsr.gz 官方最新libevent-2.0.21-stable.tar.gz提供時間處理機制,linux5.4自帶的也行,默認安裝了。 Pcre 以及pcre-devel,默認pcre是安裝的 1.安裝pcre-devel,以及創建nginx用戶 yum install pcre-devel groupadd -r nginx useradd -r -g nginx -M nginx 2.解壓縮nginx的源碼並安裝 tar -zxvf nginx-1.3.16.tar.gz -C /usr/local/src cd /usr/local/src/nginx-1.2.16 ./configure --conf-path=/etc/nginx/bf --error-log-path=/var/log/nginx/error.log

--pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_nodule --with-http_stub_ststatus_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/vat/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi --with-pcre #make && make install #mkdir -p /var/tmp/nginx/client 3.啓動nginx服務器並在客戶端作測試 /usr/local/nginx/sbin/nginx &html

查詢nginx的啓動狀態 netstat -tupln |grep nginx 下面顯示: tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6965/nginxjava

客戶端瀏覽器輸入http://本機IP地址 至此,nginx安裝完成 3.實現虛擬主機(比較經常使用的功能) nginx的配置文件比較簡單 基於IP的虛擬主機 (1)準備工做 增長一個網卡地址(原有的是192.168.17.33) ipconfig eth0:0 192.168.17.34 創建兩個站點目錄 mkdir /website1 mkdir /website2linux

創建兩個存放日誌的目錄 mkdir /var/log/nginx/website1 mkdir /var/log/nginx/website2 建立兩個測試htmlnginx

(2)修改配置文件 原有的配置文件中有一個默認server節點,而後在添加一個server節點 server {web

  listen 192.168.17.33:80;apache

  server_name localhost;windows

  #charset koi8-r;瀏覽器

  access_log /var/log/nginx/website1/access.log;緩存

  error_log /var/log/nginx/website1/error.log;

  location / {

  root /website1;

  index inde;

  }

  error_page 404 /l;

  # redirect server error pages to the static page /l

  #

  error_page 500 502 503 504 /l;

  location = /l {

  root html;

  }

  }

server {

  listen 192.168.17.34:80;

  server_name localhost;

  #charset koi8-r;

  access_log /var/log/nginx/website2/access.log;

  error_log /var/log/nginx/website2/error.log;

  location / {

  root /website2;

  index inde;

  }

  error_page 404 /l;

  # redirect server error pages to the static page /l

  #

  error_page 500 502 503 504 /l;

  location = /l {

  root html;

  }

  }

(3)停掉原有的apache服務 service httpd stop /usr/local/nginx/sbin/nginx &

(4)在客戶機分別訪問 http://192.168.17.33 http://192.168.17.34 若是有該測試html內容顯示,則證實配置成功。 4.配置建立證書的配置文件,以及建立證書 vi /etc/pki/tls/f 45行dir=/etc/pki/CA 根據配置文件的需求建立此昂觀點額文件夾和文件 mkdir certs crl newcerts touch index.txt serial echo 01>> serial //初始化文件 建立私鑰

openssl genrsa 1024?private/cakey.pem chmod 600privat/cakey.pem //受權 (2)創建nginx的安全目錄,並生成相關的私鑰和證書文件 mkdir /usr/local/nginx/certs cd /usr/local/nginx/certs openssl genrsa 1024>nginx.key chmod 600 nginx.key (3)修改nginx配置問阿金,添加用於安全訪問的站點 server {

  listen 192.168.17.33:443;

  server_name ;

  ssl on;

  ssl_certificate /usr/local/nginx/certs/nginx.cert;

  ssl_certificate_key /usr/local/nginx/certs/nginx.key;

  ssl_session_timeout 5m;

  access_log /var/log/nginx/access.log;

  error_log /var/log/nginx/error.log;

  ssl_protocols SSLv2 SSLv3 TLSv1;

  ssl_ciphers HIGH:!aNULL:!MD5;

  ssl_prefer_server_ciphers on;

  location / {

  root html;

  index inde;

  }

  } (4)重啓nginx服務,訪問 首次訪問的時候會提示風險,選擇繼續瀏覽 (5)修改web證書 cp /etc/pki/CA/cacert.pem /usr/local/nginx/certs cd /usr/local/nginx/certs cat cacert.pem>>nginx.cert 重啓nginx,訪問,安裝正式便可。

相關文章
相關標籤/搜索