1. 程式人生 > >nginx的介紹、安裝、啟動

nginx的介紹、安裝、啟動

nginx是什麼?

  伺服器:http伺服器、反向代理伺服器、虛擬主機。
  http伺服器
    是什麼?是web伺服器的一種,它是基於超文字傳輸協議HTTP的伺服器。
    能幹嘛?HTTP伺服器會等待瀏覽器傳送的請求,接收到URL請求後從中提取有用資訊作出處理,最後將 處理結果返回給客戶端。
  反向代理伺服器
    是什麼?代理伺服器
    能幹嘛?nginx接受pc機通過瀏覽器發來的請求,然後將請求轉發給內網上的web伺服器(下圖中右側的服 務器),並將從伺服器上得到的結果返回給internet上請求的客戶端。
    原理圖:pc機為n臺
在這裡插入圖片描述
  虛擬主機
    是什麼?

把一臺真實的物理伺服器主機分割成多個邏輯儲存單元。每個邏輯單元都沒有物理實體,但是每 一個邏輯單元都能像真實的物理主機一樣在網路上工作,具有單獨的IP地址(或共享的IP地址)、獨立的域名以及完整的Internet伺服器(支援WWW、FTP、E-mail等)功能。
    能幹嘛?一臺伺服器上能夠毫無衝突地配置多個網路IP地址,不必再為建立一個站點而購置單獨的服務 器,降低費用提高效率。

為什麼選擇nginx作為中介軟體?優勢

1.IO多路複用epoll
2.輕量級
  功能模組少
  程式碼模組化
3.CPU親和:是一種把CPU核心和nginx工作程序繫結在一起的方式,把每個worker程序固定在一個CPU核心上執行,
圖中,機器有2個CPU,每個CPU有4個核心,將worker與CPU核心直接繫結。 ==> 可以減少程序切換CPU帶來的開銷,獲得更好的效能。
在這裡插入圖片描述


4. sendfile令拷貝
不經過核心與使用者空間的切換,直接在核心空間之間拷貝

學習環境準備(硬體準備)

系統硬體:CPU>=2Core,記憶體>=256M
作業系統:版本>=7.0,位數x64

環境除錯4項確認
(1)確認系統網路
    ping www.baidu.com
(2)確認yum可用
(3)確認iptables規則
    iptables -L 檢視規則
    iptables -F 關閉規則
    iptables -t nat -F
(4)確認停用selinux
    gettenforce
    setenforce 0

安裝
nginx

sudo yum -y install gcc gcc-c++ make cmake
yum -y install wget httpd-tools vim

sudo yum install pcre pcre-devel
sudo yum install zlib-devel
./configure --prefix=/usr/local/nginx # 配置
make && make install # 編譯 && 安裝

安裝之後,cd /usr/local/nginx
   conf 配置檔案
   html 網頁檔案
   logs 日誌檔案
   sbin 二進位制檔案

啟動nginx

cd /usr/local/nginx
./sbin/nginx # 啟動
啟動成功後的圖見下:
在這裡插入圖片描述
  如果啟動報錯,見下圖,表示不能繫結80埠,80埠已經被佔用:natstat -nap | grep 80
在這裡插入圖片描述
解決方案:把佔用80埠的軟體或服務程序殺死 kill -9 pid

通過訊號控制nginx關閉重啟重新載入配置檔案升級

kill   -訊號   nginx的pid
kill   -訊號  `cat logs/nginx.pid`
在這裡插入圖片描述