最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx基礎(chǔ)安裝+配置文件過程

 更新時間:2025年04月24日 09:08:29   作者:嘻嘻嘻哈哈哈嘻嘻嘻  
這篇文章主要介紹了Nginx基礎(chǔ)安裝+配置文件過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

一.Nginx基礎(chǔ)

1.基礎(chǔ)知識點

Nginx 是一個 輕量級、高性能的Web服務(wù)應(yīng)用,可以作為 HTTP 服務(wù)器、虛擬主機、反向代理服務(wù)器、負載均衡器,以及支持 TCP/UDP 的通用代理服務(wù)器。

特點:穩(wěn)定性高、不容易宕機;開源免費;內(nèi)存/cpu資源消耗較少;并發(fā)能力高,至少能同時處理2-3萬并發(fā),最多能支持5萬并發(fā)

2.異步非阻塞機制

Nginx 的異步非阻塞機制通過 事件驅(qū)動模型 和 I/O 多路復(fù)用技術(shù) 實現(xiàn),使得單個 Worker 進程能夠高效處理成千上萬的并發(fā)連接。

1. Worker進程初始化,監(jiān)聽指定的端口(如80或443)。

2. 當有新的連接請求到達時,Worker進程接受該連接,并將其注冊到事件循環(huán)中。

3. 事件循環(huán)使用I/O多路復(fù)用機制(epoll)來監(jiān)視所有注冊的文件描述符(即連接)。

4. 當某個連接上有可讀或可寫事件發(fā)生時,事件循環(huán)會觸發(fā)相應(yīng)的回調(diào)函數(shù)來處理該事件。

5. 在處理事件時,如果需要進行I/O操作(如讀取請求數(shù)據(jù)或發(fā)送響應(yīng)數(shù)據(jù)),這些操作會被異步執(zhí)行,不會阻塞進程。

6. 處理完一個事件后,事件循環(huán)繼續(xù)檢查其他事件,循環(huán)往復(fù)。

  • 異步非阻塞 I/O:當發(fā)起 I/O 操作(如讀取網(wǎng)絡(luò)數(shù)據(jù)、寫入文件)時,進程不等待操作完成,而是繼續(xù)處理其他任務(wù);操作完成后,通過事件通知機制(如回調(diào)函數(shù))處理結(jié)果。
  • 事件驅(qū)動模型:Worker 進程通過事件循環(huán)(Event Loop)監(jiān)聽所有連接的事件(如可讀、可寫),僅處理已就緒的事件,避免空等。
  • I/O 多路復(fù)用:使用操作系統(tǒng)提供的機制(如 epollkqueue)同時監(jiān)控多個文件描述符(即連接),當任意一個描述符就緒時立即通知進程。

二.Nginx安裝

2.1安裝nginx3種方式

1.包管理工具安裝(yum/apt)

  • 原理:通過系統(tǒng)的包管理工具自動從官方倉庫下載并安裝預(yù)編譯的包。
  • 特點:自動解決依賴、自動生成service文件
  • 命令: centos: yum install nginx -y ubuntu: apt install nginx -y

2.本地包安裝(rpm/dpkg)

  • 原理:手動下載.rpm(Red Hat系)或.deb(Debian系)包,都屬于預(yù)編譯的二進制包
  • 特點:手動解決依賴、包含service文件
  • 命令:centos: rpm -i nginx.rpm 或 ubuntu: dpkg -i nginx.deb 安裝。

3.源碼編譯安裝

原理:從Nginx官網(wǎng)下載源代碼,手動編譯并安裝。

特點:

  • 完全自定義:可啟用/禁用模塊(如--with-http_ssl_module)、指定安裝路徑(如--prefix=/opt/nginx)。
  • 性能優(yōu)化:自行調(diào)整編譯參數(shù)(如-march=native)。
  • 手動處理依賴:需提前安裝開發(fā)工具(如gcc)及依賴庫(如PCRE、OpenSSL)。
  • 無自動管理:更新需重新編譯,服務(wù)腳本需手寫service文件。
  • 獨立目錄結(jié)構(gòu):默認安裝到/usr/local/nginx,與系統(tǒng)包隔離。

3.1 源碼編譯安裝nginx流程(ubuntu)

1. 更新apt源、下載lrzsz工具

apt update
apt install -y lrzsz 用于本地主機和服務(wù)器相互傳輸文件

2.安裝依賴包

ubuntu: apt -y install libpcre3-dev zlib1g-dev libssl-dev build-essential
centos: yum -y install gcc pcre-devel openssl-devel zlib-devel openssl openssl-devel

3.創(chuàng)建運行用戶

Nginx 服務(wù)程序默認以 nobody 身份運行:useradd -M -s /sbin/nologin nginx

4.編譯安裝nginx

./configure --prefix=/usr/local/nginx \  #指定了Nginx的安裝目錄。在這種情況下,它將安裝在 
                                          /usr/local/nginx 目錄下。
--user=nginx --group=nginx \          #指定了運行Nginx進程的用戶和組。在這種情況下,它將是用戶 
                                      和組 nginx。
--with-http_gzip_static_module \       #啟用了支持使用 .gz 擴展名提供預(yù)壓縮文件的功能。
--with-http_flv_module \
--with-http_ssl_module \                #啟用了對HTTP連接的SSL/TLS加密支持。
--with-http_realip_module \
--with-http_v2_module \                 #啟用了對HTTP2.0協(xié)議的支持
--with-http_sub_module \               
--with-http_mp4_module \              
--with-http_stub_status_module \        #啟用了 stub_status 模塊,提供了訪問Nginx狀態(tài)信息的方 
                                       法。
--with-pcre \                          #啟用了對Perl Compatible Regular Expressions(PCRE) 
                                       庫的支持。
--with-stream \                        #啟用了對TCP/UDP代理模塊的支持。
--with-stream_ssl_module \             #啟用了對TCP/UDP連接的SSL/TLS加密支持。
--with-stream_realip_module            #允許Nginx從PROXY協(xié)議頭部獲取客戶端的真實IP地址。

make -j 2(cpu數(shù)量決定)

make -install (安裝)

注意:

1.讓系統(tǒng)識別nginx操作命令,將nginx的可執(zhí)行文件做上軟鏈接

2.更改nginx文件夾下的屬主屬組

chown -R nginx.nginx /usr/local/nginx

5.檢查、啟動、重啟、停止 nginx服務(wù)

1.檢查nginx配置文件:/usr/local/nginx/conf/nginx_conf

nginx -t 檢查配置文件是否有語法錯誤

2.啟動nginx服務(wù)

3.停止nginx服務(wù)

4.重載nginx服務(wù)

5.日志分割,重新打開日志文件

nginx 存放日志文件的位置: /usr/local/nginx/logs

生成存放成功日志、錯誤日志的空文件:kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

6.nginx如何前臺啟動

3.2nginx版本平滑升級

kill -USR2 <PID號>

注意:升級完成后要使用絕對路徑啟動服務(wù),否則升級可能會報錯

3.3添加 Nginx 系統(tǒng)服務(wù)管理

因為編譯安裝沒有service文件,如果想要系統(tǒng)服務(wù)統(tǒng)一管理systemed,需要編寫service文件。

service 文件

[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

三.nginx進程

  • master 進程 :1.管理worker子進程 2.加載配置文件
  • worker 進程: 1.處理客戶端發(fā)送的請求

以處理 HTTP 請求為例:

  • 接收連接:Worker 進程通過 epoll 監(jiān)聽端口,接收客戶端連接。
  • 讀取請求:若數(shù)據(jù)未到達(非阻塞),Worker 繼續(xù)處理其他連接;若數(shù)據(jù)到達,讀取并解析請求。
  • 處理請求:若需讀取靜態(tài)文件,發(fā)起非阻塞文件 I/O 操作;若需代理到后端,發(fā)起非阻塞網(wǎng)絡(luò)連接。
  • 響應(yīng)客戶端:待所有操作完成后,通過事件回調(diào)將結(jié)果返回客戶端。

1. 核心優(yōu)勢

  • 低資源消耗:單線程可處理數(shù)萬并發(fā)連接,避免多線程的內(nèi)存開銷和上下文切換。
  • 高吞吐量:通過事件分發(fā)機制,最大化 CPU 和 I/O 利用率。四.nginx配置

nginx配置文件的路徑: /usr/local/nginx/conf/nginx_conf

  • 1、全局塊:全局配置,對全局生效; 
  • 2、events塊:配置影響 Nginx 服務(wù)器與用戶的網(wǎng)絡(luò)連接; 
  • 3、http塊:配置代理,緩存,日志定義等絕大多數(shù)功能和第三方模塊的配置; 
  • 4、server塊:配置虛擬主機的相關(guān)參數(shù),一個 http 塊中可以有多個 server 塊; 
  • 5、location塊:用于配置匹配的 urI (域名后面的部分); 
  • 6、upstream:配置后端服務(wù)器具體地址,負載均衡配置不可或缺的部分。

全局塊:全局配置,對全局生效;

  • events塊:配置影響 Nginx 服務(wù)器與用戶的網(wǎng)絡(luò)連接;

  • http塊:配置代理,緩存,日志定義等絕大多數(shù)功能和第三方模塊的配置;

注意:http模塊中還可以第三方模塊的配置

  • server塊:配置虛擬主機的相關(guān)參數(shù),一個 http 塊中可以有多個 server 塊; 
  • location塊:用于配置匹配的 urI (域名后面的部分);

  • upstream:配置后端服務(wù)器具體地址,負載均衡配置不可或缺的部分。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • NGINX配置目錄遍歷漏洞的解決

    NGINX配置目錄遍歷漏洞的解決

    目錄遍歷是一種安全漏洞,通常會影響Nginx服務(wù)器上的Web應(yīng)用程序,本文就來介紹一下NGINX配置目錄遍歷漏洞的解決,感興趣的可以了解一下
    2023-10-10
  • 504?Gateway?Timeout網(wǎng)關(guān)超時的根源及完美解決方法

    504?Gateway?Timeout網(wǎng)關(guān)超時的根源及完美解決方法

    在日常開發(fā)和運維過程中,504?Gateway?Timeout?錯誤是常見的網(wǎng)絡(luò)問題之一,尤其是在使用反向代理(如?Nginx)或負載均衡時,遇到這種錯誤會導致網(wǎng)站無法訪問,嚴重影響用戶體驗,這篇文章主要介紹了504?Gateway?Timeout網(wǎng)關(guān)超時完美解決方法,需要的朋友可以參考下
    2025-08-08
  • Linux下安裝nginx的實現(xiàn)方法

    Linux下安裝nginx的實現(xiàn)方法

    這篇文章主要介紹了Linux下安裝nginx的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • nginx配置限制同一個ip的訪問頻率方法

    nginx配置限制同一個ip的訪問頻率方法

    今天小編就為大家分享一篇nginx配置限制同一個ip的訪問頻率方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Nginx處理跨域問題小結(jié)

    Nginx處理跨域問題小結(jié)

    這篇文章主要介紹了Nginx處理跨域問題小結(jié),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01
  • Nginx配置origin限制跨域請求的詳細過程

    Nginx配置origin限制跨域請求的詳細過程

    這篇文章主要介紹了Nginx配置origin限制跨域請求的相關(guān)知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • 使用Nginx搭載rtmp直播服務(wù)器的方法

    使用Nginx搭載rtmp直播服務(wù)器的方法

    這次我們搭建一個rtmp直播服務(wù)器,用于電腦或手機直播推流到服務(wù)器,然后其他終端如電腦或手機可以觀看直播的視頻畫面。接下來通過本文給大家分享使用Nginx搭載rtmp直播服務(wù)器的問題,感興趣的朋友一起看看吧
    2021-10-10
  • 使用nginx.exe時閃退的原因和解決方法

    使用nginx.exe時閃退的原因和解決方法

    最近使用老師給的nginx.exe時,點擊nginx.exe突然屏幕就閃一下,經(jīng)過一番排查,發(fā)現(xiàn)是端口被占用所導致的,所以本文就給大家講講端口被占用時的解決方法詳細步驟,需要的朋友可以參考下
    2023-07-07
  • Centos7 安裝Nginx整合Lua的示例代碼

    Centos7 安裝Nginx整合Lua的示例代碼

    這篇文章主要介紹了Centos7 安裝Nginx整合Lua的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12

最新評論

福州市| 淳化县| 含山县| 德江县| 怀来县| 义马市| 阳西县| 鹤峰县| 安远县| 万荣县| 龙胜| 海门市| 三门县| 怀来县| 乐山市| 双鸭山市| 松桃| 汤阴县| 皮山县| 泰和县| 特克斯县| 堆龙德庆县| 东港市| 杨浦区| 兴山县| 大英县| 收藏| 顺义区| 漳平市| 霍林郭勒市| 潮州市| 虞城县| 化州市| 襄城县| 五常市| 永济市| 林芝县| 琼中| 若尔盖县| 宁武县| 呼图壁县|