Nginx介紹與安裝實踐指南
一、前言:為什么是 Nginx?
在當今的互聯(lián)網(wǎng)世界,無論是訪問一個簡單的個人博客,還是使用復雜的電商平臺,你幾乎都在和 Nginx 打交道。作為全球最流行的 Web 服務(wù)器和反向代理軟件之一,Nginx 以其高性能、高并發(fā)、低資源消耗和配置靈活的特點,成為了現(xiàn)代 Web 架構(gòu)中不可或缺的基石。
Nginx(發(fā)音為 "engine x")是一個輕量級的、高性能的Web服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器。它以其高并發(fā)連接處理能力而聞名,特別適合于在高流量網(wǎng)站中使用。Nginx同時也是一個非常靈活的服務(wù)器,它可以用于許多非HTTP用途,例如作為負載均衡器。
Nginx的主要特點包括:
- 高性能:Nginx能夠處理成千上萬的并發(fā)連接。
- 事件驅(qū)動的架構(gòu):使用異步事件處理,提高了資源利用率。
- 輕量級:相比其他Web服務(wù)器(如Apache),Nginx占用更少的內(nèi)存和CPU資源。
- 高可靠性:支持熱部署,可以在不中斷服務(wù)的情況下進行升級。
- 靈活的配置:通過配置文件可以輕松地進行各種定制。
- 反向代理:可以作為反向代理服務(wù)器,用于將請求轉(zhuǎn)發(fā)到后端多個應(yīng)用服務(wù)器。
- 負載均衡:可以配置多個服務(wù)器,實現(xiàn)請求的負載均衡。
本文將帶你從零開始,全面了解 Nginx 是什么、能做什么,并手把手教你完成在 Linux 系統(tǒng)上的安裝與初步驗證。
?? 核心價值:
掌握 Nginx 的基礎(chǔ),是你邁向高性能 Web 服務(wù)和微服務(wù)架構(gòu)的第一步!
二、Nginx 是什么?
2.1 基本定義
Nginx(發(fā)音為 “engine-x”)是一款開源的、高性能的 HTTP 服務(wù)器、反向代理服務(wù)器,同時也支持 IMAP/POP3/SMTP 等協(xié)議。它由俄羅斯開發(fā)者 Igor Sysoev 于 2004 年首次發(fā)布,旨在解決 C10K(即單機處理一萬并發(fā)連接)問題。
2.2 核心優(yōu)勢
- 高并發(fā):基于異步、非阻塞的事件驅(qū)動模型(epoll/kqueue),能夠輕松應(yīng)對數(shù)萬甚至數(shù)十萬的并發(fā)連接。
- 低內(nèi)存消耗:相比傳統(tǒng)的 Apache,Nginx 在處理靜態(tài)文件和高并發(fā)請求時,內(nèi)存占用極低。
- 高性能:靜態(tài)文件處理速度極快,是理想的靜態(tài)資源服務(wù)器。
- 模塊化設(shè)計:功能通過模塊擴展,核心保持精簡,穩(wěn)定性和安全性高。
- 熱部署:支持在不中斷服務(wù)的情況下更新配置或升級版本。
三、Nginx 能做什么?(核心應(yīng)用場景)
Nginx 的用途非常廣泛,以下是幾個最常見的場景:
| 場景 | 描述 |
|---|---|
| 1. Web 服務(wù)器 | 直接對外提供服務(wù),高效地處理和返回 HTML、CSS、JavaScript、圖片 等靜態(tài)資源。 |
| 2. 反向代理 | 接收客戶端請求,并將其轉(zhuǎn)發(fā)給后端的應(yīng)用服務(wù)器(如 Tomcat, Spring Boot, Node.js)。對外,客戶端只看到 Nginx;對內(nèi),Nginx 隱藏了后端服務(wù)器的細節(jié)。這是微服務(wù)架構(gòu)中最常見的用法。 |
| 3. 負載均衡 | 當后端有多個應(yīng)用服務(wù)器實例時,Nginx 可以作為流量分發(fā)器,將請求按照輪詢、加權(quán)輪詢、IP哈希等策略分配到不同的服務(wù)器上,從而提高系統(tǒng)的整體吞吐量和可用性。 |
| 4. 動靜分離 | 將網(wǎng)站的動態(tài)請求(需要后端計算)和靜態(tài)請求(直接讀取文件)分開處理。Nginx 處理所有靜態(tài)請求,動態(tài)請求則代理給后端應(yīng)用服務(wù)器。這能極大減輕后端壓力。 |
| 5. 安全與緩存 | 可以配置 SSL/TLS 實現(xiàn) HTTPS 加密,也可以作為緩存層,緩存后端響應(yīng),減少對后端的重復請求。 |
四、動手實踐:Nginx 安裝(以 CentOS 為例)
我們將通過兩種主流方式來安裝 Nginx:使用官方 YUM 源(推薦) 和 源碼編譯安裝。
4.1 方式一:使用 YUM 源安裝(簡單快捷)
這是最推薦給初學者的方式,因為它簡單、快速,并且便于后續(xù)的更新和管理。
步驟 1:安裝 EPEL 源
由于 Nginx 不在 CentOS 默認的 YUM 源中,我們需要先安裝 EPEL(Extra Packages for Enterprise Linux)擴展源。
sudo yum install -y epel-release
步驟 2:安裝 Nginx
sudo yum install -y nginx
步驟 3:啟動并設(shè)置開機自啟
# 啟動 Nginx sudo systemctl start nginx # 設(shè)置開機自啟 sudo systemctl enable nginx # 查看狀態(tài) sudo systemctl status nginx
4.2 方式二:源碼編譯安裝(高度定制)
如果你需要特定的模塊或?qū)?Nginx 進行深度定制,可以選擇從源碼編譯安裝。
步驟 1:安裝編譯依賴
sudo yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
gcc: C語言編譯器。pcre/pcre-devel: 用于支持正則表達式(rewrite模塊必需)。zlib/zlib-devel: 用于支持 gzip 壓縮。openssl/openssl-devel: 用于支持 HTTPS。
步驟 2:下載并解壓 Nginx 源碼
前往 Nginx 官網(wǎng) 獲取最新穩(wěn)定版源碼鏈接。
# 下載 (以 1.26.1 為例) wget https://nginx.org/download/nginx-1.26.1.tar.gz # 解壓 tar -zxvf nginx-1.26.1.tar.gz cd nginx-1.26.1
步驟 3:配置編譯選項
./configure \ --prefix=/usr/local/nginx \ # 安裝目錄 --with-http_ssl_module \ # 啟用SSL模塊 --with-http_v2_module \ # 啟用HTTP/2 --with-http_stub_status_module # 啟用狀態(tài)信息模塊
你可以根據(jù)需要添加或移除模塊。
步驟 4:編譯并安裝
make && sudo make install
步驟 5:啟動 Nginx
# 進入安裝目錄 cd /usr/local/nginx # 啟動 sudo sbin/nginx # 重載配置(平滑重啟) sudo sbin/nginx -s reload
五、驗證安裝是否成功
無論采用哪種安裝方式,最后一步都是驗證 Nginx 是否正常工作。
確保防火墻開放 80 端口
# 對于 firewalld sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --reload
在瀏覽器中訪問你的服務(wù)器 IP 地址
http://<your_server_ip>
如果一切順利,你應(yīng)該會看到 “Welcome to nginx!” 的默認歡迎頁面。這標志著你的 Nginx 已經(jīng)成功安裝并運行!
六、Nginx 基礎(chǔ)目錄結(jié)構(gòu)(YUM 安裝)
了解 Nginx 的目錄結(jié)構(gòu)對于后續(xù)的配置和維護至關(guān)重要。
/etc/nginx/: 主配置文件目錄。nginx.conf: 主配置文件,所有核心配置都在這里。conf.d/: 存放額外的配置文件(通常以.conf結(jié)尾),會被主配置文件自動包含。
/usr/share/nginx/html/: 默認的 Web 根目錄,存放網(wǎng)站的靜態(tài)文件。/var/log/nginx/: 日志文件目錄。access.log: 訪問日志。error.log: 錯誤日志。
/usr/sbin/nginx: Nginx 的可執(zhí)行文件。
七、結(jié)語
到此這篇關(guān)于Nginx介紹與安裝的文章就介紹到這了,更多相關(guān)Nginx安裝使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx使用自簽ssl證書實現(xiàn)https連接的方法
本文主要介紹了Nginx使用自簽ssl證書實現(xiàn)https連接的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07
Nginx Stream模塊詳細攻略(四層代理的藝術(shù)與實踐)
Nginx Stream模塊是1.9.0版本引入的,用于處理TCP/UDP流量,提供四層網(wǎng)絡(luò)代理功能,與HTTP模塊相比,Stream模塊工作在傳輸層,不解析應(yīng)用協(xié)議,本文給大家介紹Nginx Stream模塊完全指南:四層代理的藝術(shù)與實踐,感興趣的朋友一起看看吧2025-12-12
安裝配置php-fpm來搭建Nginx+PHP的生產(chǎn)環(huán)境
這篇文章主要介紹了安裝配置php-fpm來搭建Nginx+PHP的生產(chǎn)環(huán)境的方法,php-fpm的作用是將FastCGI進程管理整合進PHP包,需要的朋友可以參考下2016-01-01
Docker Nginx容器和Tomcat容器實現(xiàn)負載均衡與動靜分離操作
這篇文章主要介紹了Docker Nginx容器和Tomcat容器實現(xiàn)負載均衡與動靜分離操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11

