Nginx教程 一 Nginx入門教程

2021-10-13 13:07:08 字數 3772 閱讀 7405

nginx是一款輕量級的web伺服器/反向**伺服器及電子郵件(imap/pop3)**伺服器,並在乙個bsd-like協議下發行。由俄羅斯的程式設計師igorsysoev所開發,供**大型的入口**及搜尋引擎rambler(俄文:рамблер)使用。其特點是占有記憶體少,併發能力強,事實上nginx的併發能力確實在同型別的網頁伺服器中表現較好。

nginx ("engine x") 是乙個高效能的 http 和 反向** 伺服器,也是乙個imap/pop3/smtp **伺服器。 nginx 是由 igor sysoev 為俄羅斯訪問量第二的rambler.ru 站點開發的,第乙個公開版本 0.1.0 發布於 2004 年 10 月 4 日。其將源**以類 bsd 許可證的形式發布,因它的穩定性、豐富的功能集、示例配置檔案和低系統資源的消耗而聞名。

nginx 相對於 apache 優點:

1) 高併發響應效能非常好,官方 nginx 處理靜態檔案併發 5w/s

2) 反向**效能非常強。(可用於負載均衡)

3) 記憶體和 cpu 佔用率低。(為 apache 的 1/5-1/10)

4) 對後端服務有健康檢查功能。

5) 支援 php cgi 方式和 fastcgi 方式。

6) 配置**簡潔且容易上手。

2. nginx 工作原理及安裝配置

nginx 由核心和模組組成,其中,核心的設計非常微小和簡潔,完成的工作也非常簡單,僅僅通過查詢配置檔案將客戶端請求對映到乙個 location block(location 是 nginx配置中的乙個指令,用於 url 匹配),而在這個 location 中所配置的每個指令將會啟動不同的模組去完成相應的工作。

nginx 的模組從結構上分為

核心模組、基礎模組和第三方模組:

核心模組:http 模組、 event 模組和 mail 模組

基礎模組: http access 模組、http fastcgi 模組、http proxy 模組和 http rewrite模組,

第三方模組:http upstream request hash 模組、 notice 模組和 http access key模組。

nginx 的高併發得益於其採用了 epoll 模型,與傳統的伺服器程式架構不同,epoll 是linux 核心 2.6 以後才出現的。 nginx 採用 epoll 模型,非同步非阻塞,而 apache 採用的是select 模型

select 特點:select 選擇控制代碼的時候,是遍歷所有控制代碼,也就是說控制代碼有事件響應時,

select 需要遍歷所有控制代碼才能獲取到哪些控制代碼有事件通知,因此效率是非常低。

epoll 的特點:epoll 對於控制代碼事件的選擇不是遍歷的,是事件響應的,就是控制代碼上事

件來就馬上選擇出來,不需要遍歷整個控制代碼鍊錶,因此效率非常高

2、nginx解壓安裝:

tar -zxvf nginx-1.13.0.tar.gz -c ./

3、nginx編譯

./configure

報錯

解決./configure: error: c compiler cc is not found錯誤:

錯誤原因:缺少編譯環境,安裝編譯原始碼所需要的工具和庫:

執行命令:yum install gcc gcc-c++ ncurses-devel perl 

再次編譯:./configure --prefix=/usr/local/nginx

解決./configure: error: the http rewrite module requires the pcrelibrary.錯誤:

錯誤原因:缺少http rewrite module模組,禁用或者安裝所需要的模組。我們選擇安裝模組:

執行命令:yum install pcre pcre-devel

解決./configure: error: the http gzip module requires the zliblibrary.錯誤:

錯誤原因:缺少http zlib類庫,我們選擇安裝模組:

執行命令:

yuminstall zlib gzip zlib-devel

4.編譯成功

5.安裝nginx:

安裝命令:make & make install

1、檢視安裝目錄:cd

conf 存放配置檔案

html 網頁檔案

logs 存放日誌

sbin   shell啟動、停止等指令碼

2、啟動nginx

檢視程序

常見問題:

解決nginx:[emerg] bind() to 0.0.0.0:80 failed (98: address already in use)錯誤:

錯誤原因:不能繫結80埠,80埠已經被占用。

執行命令:kill –int程序號

啟動成功:

重新讀取配置檔案:

nginx-s reload

4、nginx訊號控制

term, int

快速停止(殺死程序)

quit

優雅的關閉程序,即等請求結束後再關閉

hup改變配置檔案,平滑的重讀配置檔案

usr1

重讀日誌,在日誌按月/日分割時有用

usr2

平滑的公升級

winch

優雅關閉舊的程序(配合usr2進行公升級)

5.開啟瀏覽器

進去nginx的安裝目錄

進去sbin

常用命令

啟動

./nginx

檢查 nginx.conf配置檔案

./nginx -t

重啟./nginx -s reload

停止./nginx -s stop

1. 《深入剖析nginx》

2. 《實戰nginx:取代apache的高效能web伺服器》

3. 《深入理解nginx:模組開發與架構解析》

4. 《深入理解nginx:模組開發與架構解析》

5. 《決戰nginx技術卷:高效能web伺服器部署與運維》

6. 《決戰nginx系統卷:高效能web伺服器詳解與運維》

from:

nginx 入門教程

nginx 是乙個開源的高效能 web 伺服器 可能是效能最好的 使用非常廣泛,既可以用來部署靜態資源,也可以用來作為反向 甚至可以作為負載均衡伺服器。安裝 yum install nginx 啟動 service start nginx nginx s reload預設的配置檔案在 etc ngi...

Nginx入門教程

nginx 特點 高併發高吞吐,占有記憶體少。nginx 1.12.0.tar.gz tar zxf nginx 1.12.0.tar.gz建立nginx使用者,本地家目錄,pid useradd m d usr local lnmp nginx s sbin nologin u 800 nginx...

nginx教程(二) nginx安裝教程

目錄 在開始之前 首先,安裝下編譯環境和安裝編譯原始碼所需要的工具和庫,執行命令 yum install gcc gcc c ncurses devel perl 否則,安裝安裝編譯時會報如下錯誤 建立目錄 mk usr local software package 然後進入 cd usr loca...