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