Nginx是一款輕量級的Web服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,並在一個BSD-like協議下發行。由俄羅斯的程序設計師IgorSysoev所開發,供俄國大型的入口網站及搜索引擎Rambler(俄文:Рамблер)使用。其特點是占有內存少,並發能力強,事實上nginx的並發能力確實在同類型的網頁服務器中表現較好。今天就給大家帶來Nginx超詳細入門教程,新手朋友速速來收吧!

Nginx ("engine x") 是一個高性能的 HTTP 和 反向代理 服務器,也是一個IMAP/POP3/SMTP 代理服務器。 Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的Rambler.ru 站點開發的,第一個公開版本 0.1.0 發布於 2004 年 10 月 4 日。其將源代碼以類 BSD 許可證的形式發布,因它的穩定性、豐富的功能集、示例配置文件和低係統資源的消耗而聞名。
它已經在眾多流量很大的俄羅斯網站上使用了很長時間,這些網站包括 Yandex、Mail.Ru、 VKontakte,以及 Rambler。據 Netcraft 統計,在 2012 年 8 月份,世界上最繁忙的網站中有 11.48%使用 Nginx 作為其服務器或者代理服務器。目前互聯網主流公司360、百度、新浪、騰訊、阿裏等,目前中國互聯網企業 70%以上公司都在使用 nginx 作為自己的 web 服務器。Nginx 特點是占有內存少,並發能力強,事實上 nginx 的並發能力確實在同類型的網頁服務器中表現較好。Nginx 由內核和模塊組成,其中,內核的設計非常微小和簡潔,完成的工作也非常簡單,僅僅通過配置文件將客戶端請求映射到一個 location block(location 是 Nginx配置中的一個指令,用於 URL 匹配),而在這個 location 中所配置的每個指令將會啟動不同的模塊去完成相應的工作。

Nginx 相對於 Apache 優點:
高並發響應性能非常好,官方 Nginx 處理靜態文件並發 5w/s
反向代理性能非常強。(可用於負載均衡)
內存和 cpu 占用率低。(為 Apache 的 1/5-1/10)
對後端服務有健康檢查功能。
支持 PHP cgi 方式和 fastcgi 方式。
配置代碼簡潔且容易上手。
1、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下載安裝
1. Nginx下載地址:nginx-1.13.0.tar.gz,下載到:/usr/local/software/

2.Nginx解壓安裝:
tar -zxvf nginx-1.13.0.tar.gz -C ./
3.Nginx編譯
./configure
報錯

3.1解決./configure: error: C compiler cc is not found錯誤:
錯誤原因:缺少編譯環境,安裝編譯源碼所需要的工具和庫:
執行命令:yum install gcc gcc-c++ ncurses-devel perl
再次編譯:./configure --prefix=/usr/local/nginx

3.2解決./configure: error: the HTTP rewrite module requires the PCRElibrary.錯誤:
錯誤原因:缺少HTTP rewrite module模塊,禁用或者安裝所需要的模塊。我們選擇安裝模塊:
執行命令:yum install pcre pcre-devel

3.3解決./configure: error: the HTTP gzip module requires the zliblibrary.錯誤:
錯誤原因:缺少HTTP zlib類庫,我們選擇安裝模塊:
執行命令:yuminstall zlib gzip zlib-devel
4.編譯成功

5.安裝Nginx:
安裝命令:make & make install


1.2 Nginx啟動
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端口已經被占用。
3.停止nginx,重新加載配置文件
執行命令:kill –INT進程號
啟動成功:

重新讀取配置文件:
nginx-s reload
4.Nginx信號控製
TERM, INT 快速停止(殺死進程)
QUIT 優雅的關閉進程,即等請求結束後再關閉
HUP 改變配置文件,平滑的重讀配置文件
USR1 重讀日誌,在日誌按月/日分割時有用
USR2 平滑的升級
WINCH 優雅關閉舊的進程(配合USR2進行升級)
5.打開瀏覽器

1.3常用命令
進去nginx的安裝目錄

進去sbin

常用命令
啟動 ./nginx
檢查 nginx.conf
配置文件 ./nginx -t
重啟 ./nginx -s reload
停止 ./nginx -s stop
1.4 學習Nginx推薦書籍:
《深入剖析Nginx》
《實戰Nginx:取代Apache的高性能Web服務器》
《深入理解Nginx:模塊開發與架構解析》
《深入理解Nginx:模塊開發與架構解析》
《決戰Nginx技術卷:高性能Web服務器部署與運維》
《決戰Nginx係統卷:高性能Web服務器詳解與運維》
來源:技術學派今日頭條號
熱門課程
專業講師指導 快速擺脫技能困惑相關文章
多種教程 總有一個適合自己專業問題谘詢
你擔心的問題,火星幫你解答為給新片造勢,迪士尼這次豁出去了,拿出壓箱底的一眾經典IP,開啟了夢幻聯動朱迪和尼克奉命潛入偏遠地帶臥底調查 截至11月24日......
此前Q2問答環節,鄒濤曾將《解限機》首發失利歸結於“商業化保守”和“灰產猖獗”,導致預想設計與實際遊玩效果偏差大,且表示該遊戲......
2025 Google Play年度遊戲頒獎:洞察移動遊戲新趨勢
玩家無需四處收集實體卡,輕點屏幕就能開啟驚喜開包之旅,享受收集與對戰樂趣庫洛遊戲的《鳴潮》斬獲“最佳持續運營遊戲”大獎,這不僅......
說明:文中所有的配圖均來源於網絡 在人們的常規認知裏,遊戲引擎領域的兩大巨頭似乎更傾向於在各自賽道上激烈競爭,然而,隻要時間足......
在行政服務優化層麵,辦法提出壓縮國產網絡遊戲審核周期,在朝陽、海澱等重點區將審批納入綜合窗口;完善版權服務機製,將遊戲素材著作......
未畢業先就業、組團入職、紮堆拿offer...這種好事,再多來一打!
眾所周知,火星有完善的就業推薦服務圖為火星校園招聘會現場對火星同學們來說,金三銀四、金九銀十並不是找工作的唯一良機火星時代教育......
同學您好!