Nginx 安裝 和 特性介紹

一:nginx 環境搭建

四項確認linux

  • 確認系統網絡可通行
  • 確認yum可用
  • 確認關閉iptables規則
  • 確認停用selinux

查看iptables規則nginx

iptables -L

 

關閉iptables規則c++

iptables -F

 

得到當前selinux狀態shell

getenforce

 

關閉selinuxvim

setenforce 0

 

兩項依賴安裝  centos

yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake
yum install -y wget httpd-tools vim 

 

一次初始化,初始化目錄是之後咱們放對應的文件代碼bash

  • app:代碼目錄
  • download:下載的源碼包等
  • logs:自定義日誌
  • work:一些shell腳本
  • backup:默認配置文件的備份
cd /opt
mkdir app download logs work backup 

  

安裝過程服務器

第一步:添加Nginx到YUM源網絡

添加CentOS 7 Nginx yum資源庫,打開終端,使用如下命令併發

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

 

第二步:安裝
在CentOS 7 服務器中使用yum命令從Nginx源服務器中獲取來安裝Nginx  

yum install -y nginx

 

第三步:啓動Nginx

剛安裝的Nginx不會自行啓動。運行Nginx

systemctl start nginx.service
# 設置開機自啓
systemctl enable nginx.service

若是一切進展順利的話,如今你能夠經過你的域名或IP來訪問你的Web頁面來預覽一下Nginx的默認頁面

 

 

Nginx的特性-實現優勢

 緣由一:IO多路複用epoll

 什麼是IO複用?

 

多個描述符的 I/O 操做都能在一個線程內併發交替地順序完成,這就叫I/O多路複用,這裏的"複用"指的是複用同一個線程。

 緣由二:輕量級

 功能模塊少:

源代碼裏只有核心代碼,其餘代碼以插件形式安裝

代碼模塊化:

適合二次改進

緣由三:CPU親和(affinity)

 

nginx正是利用到了cpu的親和來提升併發處理能力以及減小沒必要要的cpu損耗。

1.什麼是CPU親和

是一種把CPU核心和Nginx工做進程綁定方式,把每一個worker進程固定在一個cpu上執行,減小cpu的cache miss,得到更好的性能。

2.爲何須要CPU親和

nginx做爲接入層的中間件,nginx經過多個work進程進行處理。
假設咱們主機是兩個CPU,每一個有四個核心,咱們把CPU的八個進程分別綁定到不一樣的CPU上(也就是不一樣的work分配到不一樣的核心上)。若是有多個CPU利用自帶的CPU切換,會形成性能損失。利用這種CPU的親
和綁定,就能減小切換的損耗。
 
緣由四:sendfile

 ginx採用sendfile機制處理靜態文件,所以效率很高。

 

上圖是傳統的http服務,當咱們訪問一個文件時,會先通過內核空間,再通過用戶空間,傳給socket,最後經過response返回給用戶。該過程須要屢次與用戶空間進行切換,可是靜態文件其實不須要與用戶空間進行過多的邏輯處理。直接能夠經過內核空間傳輸。

 

sendfile機制只經過內核空間,將文件傳給socket,最終響應給用戶。

所以nginx在處理CDN和動靜分離服務時有很大優點。

相關文章
相關標籤/搜索