欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:nginx

柚子快報激活碼778899分享:nginx

http://yzkb.51969.com/

nginx簡介

Nginx:engine X ,2002年開發(fā),分為社區(qū)版和商業(yè)版(nginx plus ) 2019年3月11日 F5 Networks 6.7億美元的價格收購 Nginx是免費的、開源的、高性能的HTTP和反向代理服務(wù)器、郵件代理服務(wù)器、以及TCP/UDP代理服務(wù)器

功能介紹

靜態(tài)的web資源服務(wù)器html,圖片,js,css,txt等靜態(tài)資源 http/https協(xié)議的反向代理 結(jié)合FastCGI/uWSGI/SCGI等協(xié)議反向代理動態(tài)資源請求 tcp/udp協(xié)議的請求轉(zhuǎn)發(fā)(反向代理) imap4/pop3協(xié)議的反向代理

特性

模塊化設(shè)計,較好的擴展性 高可靠性 支持熱部署:不停機更新配置文件,升級版本,更換日志文件 低內(nèi)存消耗:10000個keep-alive連接模式下的非活動連接,僅需2.5M內(nèi)存 event-driven,aio,mmap,sendfile

web服務(wù)器功能

虛擬主機(server) 支持 keep-alive 和管道連接(利用一個連接做多次請求) 訪問日志(支持基于日志緩沖提高其性能) url rewirte 路徑別名 基于IP及用戶的訪問控制 支持速率限制及并發(fā)數(shù)限制 重新配置和在線升級而無須中斷客戶的工作進程

架構(gòu)和進程

web請求處理機制 多進程方式: 服務(wù)器每接收到一個客戶端請求就有服務(wù)器的主進程生成一個子進程響應(yīng)客戶端,直 到用戶關(guān)閉連接,這樣的優(yōu)勢是處理速度快,子進程之間相互獨立,但是如果訪問過大會導致服務(wù) 器資源耗盡而無法提供請求 多線程方式: 與多進程方式類似,但是每收到一個客戶端請求會有服務(wù)進程派生出一個線程和此客 戶端進行交互,一個線程的開銷遠遠小于一個進程,因此多線程方式在很大程度減輕了web服務(wù)器 對系統(tǒng)資源的要求,但是多線程也有自己的缺點,即當多個線程位于同一個進程內(nèi)工作的時候,可 以相互訪問同樣的內(nèi)存地址空間,所以他們相互影響,一旦主進程掛掉則所有子線程都不能工作 了,IIS服務(wù)器使用了多線程的方式,需要間隔一段時間就重啟一次才能穩(wěn)定。

Nginx是多進程方式模型,是由一個Master(主進程)和Worker(工作進程)組成。

?主進程(Master process) 功能

? ? ? ? 讀取和加載配置文件:主進程在啟動時讀取并驗證Nginx的配置文件,并將其加載到內(nèi)存中。

? ? ????初始化工作進程:主進程根據(jù)配置文件中的worker_processes指令創(chuàng)建相應(yīng)數(shù)量的工作進程。

? ? ? ? 監(jiān)控工作進程:監(jiān)控工作進程的運行狀態(tài),并在工作進程異常中止時重新啟動新的工作進 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 程。

? ? ? ? 處理信號:主進程接收來自操作系統(tǒng)的信號,并根據(jù)信號的類型執(zhí)行相應(yīng)的操作,如平滑重 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?啟、平滑升級、平滑回滾、停止服務(wù)等。

? ? ? ? 管理日志文件:主進程負責管理錯誤日志和訪問日志的滾動和重命名。

? ? ? ? socket管理:建立、綁定和關(guān)閉socket的連接

工作進程(Worker process)功能

? ? ? ? 處理客戶端請求:工作進程接收客戶端的HTTP請求,并根據(jù)配置文件中的指令進行處理,如反向代理、負載均衡、靜態(tài)文件服務(wù)等。

? ? ? ? 執(zhí)行網(wǎng)絡(luò)I/O操作:工作進程使用異步非阻塞的方式處理網(wǎng)絡(luò)事件,如接受新連接、讀取和寫入數(shù)據(jù),提高了處理并發(fā)連接的能力。

? ? ? ? 資源隔離:每個工作進程在內(nèi)存和文件描述符等資源上是獨立的,這樣可以防止一個進程的崩潰影響到其他進程。

? ? ? ? 執(zhí)行配置文件中的指令:工作進程執(zhí)行主進程加載的配置文件中的指令,完成各種網(wǎng)絡(luò)服務(wù)任務(wù)。

Nginx 進程間通信

工作進程是由主進程生成的,主進程使用fork()函數(shù),在Nginx服務(wù)器啟動過程中主進程根據(jù)配置文件決 定啟動工作進程的數(shù)量,然后建立一張全局的工作表用于存放當前未退出的所有的工作進程,主進程生 成工作進程后會將新生成的工作進程加入到工作進程表中,并建立一個單向的管道并將其傳遞給工作進 程,該管道與普通的管道不同,它是由主進程指向工作進程的單向通道,包含了主進程向工作進程發(fā)出 的指令、工作進程ID、工作進程在工作進程表中的索引和必要的文件描述符等信息。

主進程與外界通過信號機制進行通信,當接收到需要處理的信號時,它通過管道向相關(guān)的工作進程發(fā)送 正確的指令,每個工作進程都有能力捕獲管道中的可讀事件,當管道中有可讀事件的時候,工作進程就 會從管道中讀取并解析指令,然后采取相應(yīng)的執(zhí)行動作,這樣就完成了主進程與工作進程的交互。

Nginx 模塊介紹

nginx 有多種模塊 ? ? ? ? 核心模塊:這些是Nginx的基礎(chǔ)模塊,提供了服務(wù)器運行所必需的核心功能,如事件處理、配置文件解析等。

? ? ? ? 標準HTTP模塊:這些模塊提供了HTTP協(xié)議相關(guān)的功能,如處理HTTP請求和響應(yīng)、設(shè)置HTTP頭信息等。

? ? ? ? 可選HTTP模塊:這些模塊提供了額外的HTTP功能,如URL重寫、地理位置信息處理等。

? ? ? ? 郵件服務(wù)模塊:這些模塊支持郵件服務(wù),如SMTP、IMAP和POP3。

? ? ? ? 第三方模塊:由社區(qū)或其他組織開發(fā),用于增加Nginx的特定功能,如JSON支持、Lua腳本支持等。

? ? ? ? 常見模塊及用途

? ? ? ? ngx_http_core_module:提供HTTP協(xié)議的支持,包括配置HTTP段、server虛擬主機段、location段等。

? ? ? ? ngx_http_gzip_module:使用gzip方法壓縮響應(yīng),減少傳輸數(shù)據(jù)大小,提高請求返回速度。

? ? ? ? ?ngx_http_proxy_module:允許將請求轉(zhuǎn)發(fā)到其他服務(wù)器,實現(xiàn)反向代理服務(wù)器的功能。

? ? ? ? ?ngx_http_rewrite_module:使用PCRE正則表達式更改請求的URI、返回重定向或判斷選擇對應(yīng)的配置項。

? ? ? ? ngx_http_upstream_module:用于用戶分發(fā)到不同的服務(wù)器節(jié)點,支持多種后端服務(wù)器類型。

nginx高度模塊化,但其模塊早期不支持DSO機制;1.9.11 版本支持動態(tài)裝載和卸載

Nginx 源碼安裝

nginx官網(wǎng)下載地址:nginx: download

編譯需要的工具

解壓這三個模塊

安裝模塊

進入到 /root/nginx-1.26.1 目錄中輸入命令

[root@nginx ~]# cd /root/nginx-1.26.1

?[root@php nginx-1.26.1]# ./configure --prefix=/usr/local/nginx \

?--add-module=/root/echo-nginx-module-0.63 \

?--add-module=/root/memc-nginx-module-0.20 \

?--add-module=/root/srcache-nginx-module-0.33 \

?--user=nginx \

?--group=nginx \

?--with-http_v2_module \

?--with-http_realip_module \

?--with-http_stub_status_module \

?--with-http_gzip_static_module \

?--with-stream --with-stream_ssl_module \

?--with-stream_realip_module \

?--with-pcre

?關(guān)閉debug模式,減小文件體積

vim auto/cc/gcc

編譯安裝

?[root@nginx ~]# cd /root/nginx-1.26.1

?[root@nginx nginx-1.26.1]# make && make install

nginx配置

#啟動nginx

?[root@nginx nginx-1.26.1]# /usr/local/nginx/sbin/nginx

?#加入環(huán)境變量

?[root@nginx nginx-1.26.1]# vim ~/.bash_profile

? ?1 # .bash_profile

? ?2

? ?3 # Get the aliases and functions

? ?4 if [ -f ~/.bashrc ]; then

? ?5 ? . ~/.bashrc

? ?6 fi

? ?7

? ?8 # User specific environment and startup programs

? ?9 export PATH=$PATH:/usr/local/nginx/sbin

?[root@nginx nginx-1.26.1]# source ~/.bash_profile

?[root@nginx nginx-1.26.1]# nginx -V

?nginx version: nginx/1.26.1

?built by gcc 11.3.1 20220421 (Red Hat 11.3.1-2) (GCC)

?built with OpenSSL 3.0.1 14 Dec 2021

?TLS SNI support enabled

?configure arguments: --prefix=/usr/local/nginx --add-module=/root/echo-nginx-module-0.63 --add-module=/root/memc-nginx-module-0.20 --add-module=/root/srcache-nginx-module-0.33 --user=nginx --group=nginx --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-stream --with-stream_ssl_module --with-stream_realip_module --with-pcre

?[root@nginx nginx-1.26.1]# nginx -t

?nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

?nginx: configuration file /etc/nginx/nginx.conf test is successful

設(shè)置控制文件

[root@nginx ~]# vim /lib/systemd/system/nginx.service

[Unit]

Description=The NGINX HTTP and reverse proxy server

After=syslog.target network-online.target remote-fs.target nss-lookup.target

Wants=network-online.target

[Service]

Type=forking

PIDFile=/usr/local/nginx/logs/nginx.pid

ExecStartPre=/usr/local/nginx/sbin/nginx -t

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/bin/kill -s QUIT $MAINPID

PrivateTmp=true

[Install]

WantedBy=multi-user.target

[root@Nginx ~]# systemctl daemon-reload

[root@Nginx ~]# systemctl start nginx

添加可執(zhí)行權(quán)限

chmod +x /lib/systemd/system/nginx.service

平滑升級和回滾

?平滑升級

在不停止服務(wù)的情況下,進行新模塊添加或版本升級

獲取新版本以及需要添加的組件并解壓

進入新版本文件目錄,檢查環(huán)境變量

./configure --prefix=/usr/local/nginx \

> --user=nginx \

> --group=nginx \

> --add-module=/root/echo-nginx-module-0.63 \

> --with-http_ssl_module \

> --with-http_v2_module \

> --with-http_realip_module \

> --with-http_gzip_static_module \

> --with-http_stub_status_module \

> --with-pcre \

> --with-stream \

> --with-stream_ssl_module \

> --with-stream_realip_module

?編譯文件,不安裝

[root@Nginx nginx-1.26.2]# make

?備份舊配置文件

cd /usr/local/nginx/sbin/

mv nginx nginx.bak_24

?將新配置文件復制至目錄,并檢查新配置文件

\cp -f /root/nginx-1.26.2/objs/nginx /usr/local/nginx/sbin/

nginx -t

更新nginx

[root@Nginx sbin]# nginx -v

nginx version: nginx/1.24.0

[root@Nginx sbin]# ps aux | grep nginx

root 20323 0.0 0.0 8672 820 ? Ss 14:50 0:00 nginx: master process nginx

nginx 20324 0.0 0.2 9436 3364 ? S 14:50 0:00 nginx: worker process

root 20340 0.0 0.1 22108 2428 pts/2 S+ 14:51 0:00 grep --color=auto nginx

[root@Nginx sbin]# kill -USR2 20323

[root@Nginx sbin]# ps aux | grep nginx

root 20323 0.0 0.1 8672 2512 ? Ss 14:50 0:00 nginx: master process nginx

nginx 20324 0.0 0.2 9436 3364 ? S 14:50 0:00 nginx: worker process

root 20343 0.0 0.4 8716 5968 ? S 14:51 0:00 nginx: master process nginx

nginx 20344 0.0 0.2 9476 3376 ? S 14:51 0:00 nginx: worker process

root 20346 0.0 0.1 22108 2316 pts/2 S+ 14:51 0:00 grep --color=auto nginx

[root@Nginx sbin]# nginx -v

nginx version: nginx/1.26.2

回收舊版本

[root@Nginx sbin]# ps aux | grep nginx

root 20323 0.0 0.1 8672 2512 ? Ss 14:50 0:00 nginx: master process nginx

nginx 20324 0.0 0.2 9436 3364 ? S 14:50 0:00 nginx: worker process

root 20343 0.0 0.4 8716 5968 ? S 14:51 0:00 nginx: master process nginx

nginx 20344 0.0 0.2 9476 3376 ? S 14:51 0:00 nginx: worker process

root 20571 0.0 0.1 22108 2240 pts/2 S+ 18:53 0:00 grep --color=auto nginx

[root@Nginx sbin]# kill -WINCH 20323

[root@Nginx sbin]# ps aux | grep nginx

root 20323 0.0 0.1 8672 2512 ? Ss 14:50 0:00 nginx: master process nginx

root 20343 0.0 0.4 8716 5968 ? S 14:51 0:00 nginx: master process nginx

nginx 20344 0.0 0.2 9476 3376 ? S 14:51 0:00 nginx: worker process

root 20573 0.0 0.1 22108 2336 pts/2 S+ 18:54 0:00 grep --color=auto nginx

平滑回滾

? ? ? ? 如果升級的新版本發(fā)現(xiàn)問題,可以回滾至舊版本

? ? ? ? 替換配置文件

[root@Nginx sbin]# cp nginx nginx.26

[root@Nginx sbin]# ls

nginx nginx.24 nginx.26

[root@Nginx sbin]# mv nginx.24 nginx

mv: overwrite 'nginx'? y

[root@Nginx sbin]# kill -HUP 48732

[root@Nginx sbin]# ps aux | grep nginx

root 48732 0.0 0.1 9868 2436 ? Ss 14:17 0:00 nginx: master

process /usr/local/nginx/sbin/nginx

root 52075 0.0 0.3 9876 6528 ? S 15:41 0:00 nginx: master

process /usr/local/nginx/sbin/nginx

nobody 52076 0.0 0.2 14208 5124 ? S 15:41 0:00 nginx: worker

process

nobody 52130 0.0 0.2 14200 4868 ? S 16:30 0:00 nginx: worker

process

[root@Nginx sbin]# kill -WINCH 52075

[root@Nginx sbin]# ps aux | grep nginx

root 48732 0.0 0.1 9868 2436 ? Ss 14:17 0:00 nginx: master

process /usr/local/nginx/sbin/nginx

root 52075 0.0 0.3 9876 6528 ? S 15:41 0:00 nginx: master

process /usr/local/nginx/sbin/nginx

nobody 52130 0.0 0.2 14200 4868 ? S 16:30 0:00 nginx: worker

process

root 52137 0.0 0.1 221664 2176 pts/0 S+ 16:31 0:00 grep --

color=auto nginx

[root@Nginx sbin]# curl -I localhost

HTTP/1.1 200 OK

Server: nginx/1.24.0 ##版本回滾完成

Date: Thu, 18 Jul 2024 08:31:51 GMT

Content-Type: text/html

Content-Length: 615

Last-Modified: Thu, 18 Jul 2024 03:41:13 GMT

Connection: keep-alive

ETag: "66988ed9-267"

Accept-Ranges: bytes

Nginx 核心配置詳解

nginx 官方幫助文檔:http://nginx.org/en/docs/

Nginx的配置文件的組成部分:

主配置文件:nginx.conf 子配置文件: include conf.d/*.conf fastcgi, uwsgi,scgi 等協(xié)議相關(guān)的配置文件 mime.types:支持的mime類型,MIME(Multipurpose Internet Mail Extensions)多用途互聯(lián)網(wǎng)郵 件擴展類型,MIME消息能包含文本、圖像、音頻、視頻以及其他應(yīng)用程序?qū)S玫臄?shù)據(jù),是設(shè)定某 種擴展名的文件用一種應(yīng)用程序來打開的方式類型,當該擴展名文件被訪問的時候,瀏覽器會自動 使用指定應(yīng)用程序來打開。多用于指定一些客戶端自定義的文件名,以及一些媒體文件打開方式。

nginx 配置文件格式說明

配置文件由指令與指令塊構(gòu)成

每條指令以;分號結(jié)尾,指令與值之間以空格符號分隔

可以將多條指令放在同一行,用分號分隔即可,但可讀性差,不推薦

指令塊以{ }大括號將多條指令組織在一起,且可以嵌套指令塊

include語句允許組合多個配置文件以提升可維護性

使用#符號添加注釋,提高可讀性

使用$符號使用變量

部分指令的參數(shù)支持正則表達式

Nginx 主配置文件的配置指令方式:

directive value [value2 ...];

注意

(1) 指令必須以分號結(jié)尾

(2) 支持使用配置變量

內(nèi)建變量:由Nginx模塊引入,可直接引用

自定義變量:由用戶使用set命令定義,格式: set variable_name value;

引用變量:$variable_name

主配置文件結(jié)構(gòu):四部分

main block:主配置段,即全局配置段,對http,mail都有效

#事件驅(qū)動相關(guān)的配置

event {

...

}

#http/https 協(xié)議相關(guān)配置段

http {

默認的nginx.conf 配置文件格式說明.

..

}

#默認配置文件不包括下面兩個塊

#mail 協(xié)議相關(guān)配置段

mail {

...

}

#stream 服務(wù)器相關(guān)配置段

stream {

...

}

默認的nginx.conf 配置文件格式說明

#全局配置端,對全局生效,主要設(shè)置nginx的啟動用戶/組,啟動的工作進程數(shù)量,工作模式,Nginx的PID路

徑,日志路徑等。

user nginx nginx;

worker_processes 1; #啟動工作進程數(shù)數(shù)量

events { #events #設(shè)置快,主要影響nginx服務(wù)器與用戶的網(wǎng)絡(luò)連接,比如是否允許同時接受多個網(wǎng)絡(luò)連接,使用哪種事件驅(qū)動模型 #處理請求,每個工作進程可以同時支持的最大連接數(shù),是否開啟對多工作進程下的網(wǎng)絡(luò)連接進行序列化等。

worker_connections 1024; #設(shè)置單個nginx工作進程可以接受的最大并發(fā),作為web服務(wù)器的時候最大并發(fā)數(shù)為 #worker_connections *

worker_processes,作為反向代理的時候為

#(worker_connections * worker_processes)/2

}

http {

#http塊是Nginx服務(wù)器配置中的重要部分,緩存、代理和日志格

式定義等絕大多數(shù)功能和第三方模塊都 #可以在這設(shè)置,http塊可

以包含多個server塊,而一個server塊中又可以包含多個location塊,

#server塊可以配置文件引入、MIME-Type定義、日志自定義、是

否啟用sendfile、連接超時時間和 #單個鏈接的請求上限等。

include mime.types;

default_type application/octet-stream;

sendfile on; #作為web服務(wù)器的時候打開sendfile加快靜態(tài)文件傳輸,指定是否使用

#sendfile系統(tǒng)調(diào)用來傳輸文件

#sendfile系統(tǒng)調(diào)用在兩個文件描述符之間直接傳遞數(shù)據(jù)(完全在內(nèi)核中操作)

#從而避免了數(shù)據(jù)在內(nèi)核緩沖區(qū)和用戶緩沖區(qū)之間的拷貝,操作效率很高,被稱之為零拷貝,

#硬盤 >> kernel buffer (快速拷貝到kernelsocketbuffer) >>協(xié)議棧。

keepalive_timeout 65; #長連接超時時間,單位是秒

server {

#設(shè)置一個虛擬機主機,可以包含自己的全局快,同時也可以包含多個location模塊

#比如本虛擬機監(jiān)聽的端口、本虛擬機的名稱和IP配置,多個server 可以使用一個端口比如都使用

#80端口提供web服務(wù)

listen 80; #配置server監(jiān)聽的端口

server_name localhost; #本server的名稱,當訪問此名稱的時候nginx會調(diào)用當前serevr內(nèi)部的配置進程匹配。

location / { #location其實是server的一個指令,為nginx服務(wù)器提供比較多而且靈活的指令

#都是在location中體現(xiàn)的,主要是基于nginx接受到的請求字符串

#對用戶請求的UIL進行匹配,并對特定的指令進行處理

#包括地址重定向、數(shù)據(jù)緩存和應(yīng)答控制等功能都是在這部分實現(xiàn)

#另外很多第三方模塊的配置也是在location模塊中配置。

root html; #相當于默認頁面的目錄名稱,默認是安裝目錄的相對路徑,可以使用絕對路徑配置。

index index.html index.htm; #默認的頁面文件名稱

}

error_page 500 502 503 504 /50x.html; #錯誤頁面的文件名稱

location = /50x.html { #location處理對應(yīng)的不同錯誤碼的頁面定義到/50x.html

#這個跟對應(yīng)其server中定義的目錄下。

root html; #定義默認頁面所在的目錄

}

}

#和郵件相關(guān)的配置

#mail {

# ...

# } mail 協(xié)議相關(guān)配置段

#tcp代理配置,1.9版本以上支持

#stream {

# ...

# } stream 服務(wù)器相關(guān)配置段

#導入其他路徑的配置文件

#include /apps/nginx/conf.d/*.conf

}

全局配置

Main 全局配置段常見的配置指令分類 正常運行必備的配置 優(yōu)化性能相關(guān)的配置 用于調(diào)試及定位問題相關(guān)的配置 事件驅(qū)動相關(guān)的配置

全局配置說明:

user nginx nginx; #啟動Nginx工作進程的用戶和組

worker_processes [number | auto]; #啟動Nginx工作進程的數(shù)量,一般設(shè)為和CPU核心數(shù)相同

worker_cpu_affinity 00000001 00000010 00000100 00001000 | auto ;

#將Nginx工作進程綁定到指定的CPU核心,默認Nginx是不進行進程綁定的,綁定并不是意味著當前ginx進程獨占以一核心CPU,但是可以保證此進程不運行在其他核心上,這就極大減少了nginx的工作進程在不同的cpu核心上的來回跳轉(zhuǎn),減少了CPU對進程的資源分配與回收以及內(nèi)存管理等,因此可以有效的提升nginx服務(wù)器的性能。

CPU MASK: 00000001:0號CPU

00000010:1號CPU

10000000:7號CPU

#示例

worker_cpu_affinity 0001 0010 0100 1000;第0號---第3號CPU

worker_cpu_affinity 0101 1010;

#示例

worker_processes 4;

worker_cpu_affinity 00000010 00001000 00100000 10000000;

[root@centos8 ~]# ps axo pid,cmd,psr | grep nginx

31093 nginx: master process /apps 1

34474 nginx: worker process 1

34475 nginx: worker process 3

34476 nginx: worker process 5

34477 nginx: worker process 7

#錯誤日志記錄配置,語法:error_log file [debug | info | notice | warn | error | crit

| alert | emerg]

#error_log logs/error.log;

#error_log logs/error.log notice;

error_log /usr/local/nginx/logs/error.log error;

#pid文件保存路徑

pid /usr/local/nginx/logs/nginx.pid;

worker_priority 0; #工作進程優(yōu)先級,-20~20(19)

worker_rlimit_nofile 65536; #所有worker進程能打開的文件數(shù)量上限,

#包括:Nginx的所有連接(例如與代理服務(wù)器的連接等)

#而不僅僅是與客戶端的連接

#另一個考慮因素是實際的并發(fā)連接數(shù)不能超過系統(tǒng)級別的最大打開文件

數(shù)的限制

#最好與ulimit -n 或者limits.conf的值保持一致,

#修改pam限制

[root@Nginx ~]# sudo -u nginx ulimit -n

1024

[root@Nginx ~]# vim /etc/security/limits.conf

* - nofile 100000

[root@Nginx ~]# sudo -u nginx ulimit -n

100000

daemon off; #前臺運行Nginx服務(wù)用于測試、docker等環(huán)境。

master_process off|on; #是否開啟Nginx的master-worker工作模式,僅用于開發(fā)調(diào)試場景,默認為

on

events {

示例: 實現(xiàn) nginx 的高并發(fā)配置

worker_connections 65535; #設(shè)置單個工作進程的最大并發(fā)連接數(shù)

use epoll; #使用epoll事件驅(qū)動,

#Nginx支持眾多的事件驅(qū)動,

#比如:select、poll、epoll,只能設(shè)置在events模塊中

設(shè)置

accept_mutex on; #on為同一時刻一個請求輪流由work進程處理,

#而防止被同時喚醒所有worker

#避免多個睡眠進程被喚醒的設(shè)置,默認為off

#新請求會喚醒所有worker進程,此過程也稱為"驚群"

#因此nginx剛安裝完以后要進行適當?shù)膬?yōu)化。建議設(shè)置為on

multi_accept on; #on時Nginx服務(wù)器的每個工作進程可以同時接受多個新的網(wǎng)

絡(luò)連接

#此指令默認為off,

#即默認為一個工作進程只能一次接受一個新的網(wǎng)絡(luò)連接

#打開后幾個同接受多個。建議設(shè)置為on

}

實現(xiàn) nginx 的高并發(fā)配置

[root@Nginx ~]# ulimit -n 102400

[root@Nginx ~]# ab -c 5000 -n 10000 http://10.0.0.8/

#默認配置不支持高并發(fā),會出現(xiàn)以下錯誤日志

[root@Nginx ~]# tail /apps/nginx/logs/error.log

2020/09/24 21:19:33 [crit] 41006#0: *1105860 open() "/apps/nginx/html/50x.html"

failed (24: Too many open files), client: 10.0.0.7, server: localhost, request:

"GET / HTTP/1.0", host: "10.0.0.8"

2020/09/24 21:19:33 [crit] 41006#0: accept4() failed (24: Too many open files)

2020/09/24 21:19:33 [crit] 41006#0: *1114177 open()

"/apps/nginx/html/index.html" failed (24: Too many open files), client: 10.0.0.7,

server: localhost, request: "GET / HTTP/1.0", host: "10.0.0.8"

#修改配置

[root@Nginx ~]# vim /etc/security/limits.conf

* - nproc 100000

[root@Nginx ~]# vim /apps/nginx/conf/nginx.conf

worker_rlimit_nofile 100000;

[root@Nginx ~]# systemctl restart nginx

http 配置塊

#在響應(yīng)報文中將指定的文件擴展名映射至MIME對應(yīng)的類型

include /etc/nginx/mime.types;

default_type application/octet-stream; #除mime.types中的類型外

#指定其它文件的默認MIME類型,瀏覽

器一般會提示下載

types {

text/html html;

image/gif gif;

image/jpeg jpg;

}

柚子快報激活碼778899分享:nginx

http://yzkb.51969.com/

參考文章

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19553640.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄