Nginx概述、命令、配置文件和具體應(yīng)用詳解
前言
為了鞏固所學(xué)的知識,作者嘗試著開始發(fā)布一些學(xué)習(xí)筆記類的博客,方便日后回顧。當(dāng)然,如果能幫到一些萌新進行新技術(shù)的學(xué)習(xí)那也是極好的。作者菜菜一枚,文章中如果有記錄錯誤,歡迎讀者朋友們批評指正。(博客的參考源碼可以在我主頁的資源里找到,如果在學(xué)習(xí)的過程中有什么疑問歡迎大家在評論區(qū)向我提出)
一、Nginx概述
1. Nginx介紹
- Nginx是一款輕量級的web 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器。其特點是占有內(nèi)存少,并發(fā)能力強,事實上nginx的并發(fā)能力在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好,中國大陸使用nginx的網(wǎng)站有: 百度、京東新浪、網(wǎng)易、騰訊、淘寶等。
- Nginx是由伊戈爾·賽索耶夫為俄羅斯訪問量第二的Rambler,ru站點(俄文: Pam6nep)開發(fā)的,第一個公開版本.1.0發(fā)布于2004年10月4日。
- 官網(wǎng): https://nginx.org/
2. Nginx下載和安裝
安裝依賴包 yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
下載Nginx安裝包wget https://nginx.org/download/nginx-1.16.1.tar.gz
解壓 tar -zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx
make && make install
3. Nginx目錄結(jié)構(gòu)
安裝完Nginx后,我們先來熟悉一下Nginx的目錄結(jié)構(gòu),重點目錄/文件如下:
- conf/nginx.conf ---- nginx配置文件
- html ---- 存放靜態(tài)文件 (html、CSS、Js等)
- logs ---- 日志目錄,存放日志文件
- sbin/nginx ---- 二進制文件,用于啟動、停止Nginx服務(wù)
二、Nginx命令
1. 查看版本 查看Nginx版本可以使用命令
./nginx -V
2. 檢查配置文件正確性
./nginx -t ---- 在啟動Nqinx服務(wù)之前,可以先檢查一下conf/nginx.conf文件配置的是否有錯誤,命令如下:
3. 啟動和停止
1. 啟動Nginx服務(wù)使用如下命令
./nginx
2. 停止Nginx服務(wù)使用如下命令
./nginx -s stop
3. 啟動完成后可以查看Nginx進程
ps -ef | grep nginx
4. 重新加載配置文件
./nginx -s reload
三、Nginx配置文件結(jié)構(gòu)
Nginx配置文件(conf/nginx.conf)整體分為三部分
全局塊 ---- 和網(wǎng)絡(luò)連接相關(guān)的配置
events塊 ---- 和網(wǎng)絡(luò)連接相關(guān)的配置
http塊 ---- 代理、緩存、日志記錄、虛擬主機配置
. http全局塊
. Server塊
---- Server全局塊
---- location塊
注意: http塊中可以配置多個Server塊,每個Server塊中可以配置多個location塊。
四、Nginx具體應(yīng)用
1. 部署靜態(tài)資源
1. Nginx如何部署靜態(tài)資源
Nginx可以作為靜態(tài)web服務(wù)器來部署靜態(tài)資源。靜態(tài)資源指在服務(wù)端真實存在并且能夠直接展示的一些文件,比如常見的htm[頁面、css文件、js文件、圖片、視頻等資源。
相對于Tomcat,Nginx處理靜態(tài)資源的能力更加高效,所以在生產(chǎn)環(huán)境下,一般都會將靜態(tài)資源部署到Nginx中。將靜態(tài)資源部署到Nginx非常簡單,只需要將文件復(fù)制到Nginx安裝目錄下的html目錄中即可。
2. 示例
2. 反向代理
1. 正向代理
是一個位于客戶端和原始服務(wù)器(origin server)之間的服務(wù)器,為了從原始服務(wù)器取得內(nèi)容,客戶端向代理發(fā)送一個請求并指定目標(原始服務(wù)器),然后代理向原始服務(wù)器轉(zhuǎn)交請求并將獲得的內(nèi)容返回給客戶端。
正向代理的典型用途是為在防火墻內(nèi)的局域網(wǎng)客戶端提供訪問Internet的途徑。
正向代理一般是在客戶端設(shè)置代理服務(wù)器,通過代理服務(wù)器轉(zhuǎn)發(fā)請求,最終訪問到目標服務(wù)器
2. 反向代理
- 反向代理服務(wù)器位于用戶與目標服務(wù)器之間,但是對于用戶而言,反向代理服務(wù)器就相當(dāng)于目標服務(wù)器,即用戶直按訪問反向代理服務(wù)器就可以獲得目標服務(wù)器的資源,反向代理服務(wù)器負責(zé)將請求轉(zhuǎn)發(fā)給目標服務(wù)器。
- 用戶不需要知道目標服務(wù)器的地址,也無須在用戶端作任何設(shè)定。
3. 配置反向代理示例
3. 負載均衡
1. 什么是負載均衡
早期的網(wǎng)站流量和業(yè)務(wù)功能都比較簡單,單臺服務(wù)器就可以滿足基本需求,但是隨著互聯(lián)網(wǎng)的發(fā)展,業(yè)務(wù)流量越來越大并且業(yè)務(wù)邏輯也越來越復(fù)雜,單臺服務(wù)器的性能及單點故障問題就凸顯出來了,因此需要多臺服務(wù)器組成應(yīng)用集群進行性能的水平擴展以及避免單點故障出現(xiàn)。
應(yīng)用集群:將同一應(yīng)用部署到多臺機器上,組成應(yīng)用集群,接收負載均衡器分發(fā)的請求,進行業(yè)務(wù)處理并返回響應(yīng)數(shù)據(jù)
負載均衡器:將用戶請求根據(jù)對應(yīng)的負載均衡算法分發(fā)到應(yīng)用集群中的一臺服務(wù)器進行處理
2. 負載均衡配置示例
3. 負載均衡的策略
名稱 | 說明 |
---|---|
輪詢 | 默認方式 |
weight | 權(quán)重方式 |
ip_hash | 依據(jù)ip分配方式 |
least conn | 依據(jù)最少連接方式 |
url hash | 依據(jù)url分配方式 |
fair | 依據(jù)響應(yīng)時間方式 |
總結(jié)
到此這篇關(guān)于Nginx概述、命令、配置文件和具體應(yīng)用的文章就介紹到這了,更多相關(guān)Nginx配置文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Prometheus監(jiān)控實戰(zhàn)篇Nginx、Hbase操作詳解
這篇文章主要介紹了Prometheus監(jiān)控實戰(zhàn)篇Nginx、Hbase,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-02-02nginx實現(xiàn)靜態(tài)文件的token認證過程
這篇文章主要介紹了nginx實現(xiàn)靜態(tài)文件的token認證過程,2024-06-06nginx加php-fpm出現(xiàn)502 bad gateway錯誤的5種解決方法
這篇文章主要介紹了nginx加php-fpm環(huán)境中出現(xiàn)502 bad gateway錯誤的5種解決方法,總結(jié)歸納服務(wù)器出現(xiàn)502錯誤的原因多數(shù)為連接過多和腳本超時,本文總結(jié)了5種解決方法,需要的朋友可以參考下2014-05-05