2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Nginx rutrum: http://nginx.org
Nginx liber, fons apertus, summus effectus HTTP est et vicissim procurator, electronicus procurator, et TCP/UDP proxy
Aliae emissiones secundariae nginx;
Tengine
Proiectum servernum interretialem a Taobao initiatum. Fundatur in Nginx, multas provectus functiones et lineamenta addit ad usus necessarios magnarum locorum commercii. Effectio et stabilitas Tengine bene probata sunt in magnis locis sicut Taobao, Tmall Mall, etc. Finis eius ultimus est efficere ut suggestum efficax, firmum, securum ac facile- interretialem usum.Incipiens mense Decembri MMXI, Tengine aperta fons project factus est
Officialis website: http://tengine.taobao.org/
OpenResty
Summus perficientur in Nginx et Luae lingua suggestum interretialem
Officialis website: http://openresty.org/cn/
Nginx munus introductio
Static web resource server html, pictures, js, css, txt aliaque static facultates
Reverse procuratorem ad http / https protocol
Deducta cum FastCGI/uWSGI/SCGI et aliis protocols ad reverso ineundo petitiones dynamicas resource
Peto procuret ex tcp / udp protocol (reverse procuratorem)
Reverse procuratorem pro imap4/pop3 protocol
Basic features
Modulare consilium, bona scalabilitas
Princeps reliability
Subsidium calidum instruere: renovatio imaginum tabularum, upgrade versiones, ac fasciculos iniuriarum sine tempore down
Humilis memoria consumptio: 10,000 nexus quiescant in custodia viva iunctio modus tantum 2.5M memoriam requiret
eventus agitatae, aio, mmap,sendfile
Interreti muneris related munera
Virtual hospes (servo)
subsidia conserva-viva et nexus pipeline (utendo uno nexu ut multiplices petitiones faciant)
Aditus iniuriarum (sustinet log buffering ut amplio perficiendi)
URL rewirte
iter alias
IP ac user-fundatur accessum imperium
Firmamentum rate modus et concursus modus
Reconfiguration and online upgrades without interrupting customer workflows
Nginx processus compages
Nginx exemplar est multi-processus organizationis, et constat processu Magistri et processus operarii.
Munera processus domini:
对外接口:接收外部的操作(信号)
对内转发:根据外部的操作的不同,通过信号管理 Worker
监控:监控 worker 进程的运行状态,worker 进程异常终止后,自动重启 worker 进程
读取Nginx 配置文件并验证其有效性和正确性
建立、绑定和关闭socket连接
按照配置生成、管理和结束工作进程
接受外界指令,比如重启、升级及退出服务器等指令
不中断服务,实现平滑升级,重启服务并应用新的配置
开启日志文件,获取文件描述符
不中断服务,实现平滑升级,升级失败进行回滚处理
编译和处理perl脚本
Munera processus laborantis:
所有 Worker 进程都是平等的
实际处理:网络请求,由 Worker 进程处理
Worker进程数量:一般设置为核心数,充分利用CPU资源,同时避免进程数量过多,导致进程竞争CPU资源,
增加上下文切换的损耗
接受处理客户的请求
将请求依次送入各个功能模块进行处理
I/O调用,获取响应数据
与后端服务器通信,接收后端服务器的处理结果
缓存数据,访问缓存索引,查询和调用缓存数据
发送请求结果,响应客户的请求
接收主程序指令,比如重启、升级和退出等
Modulus Nginx introductio
Core modulus: Est essentialis modulus ad normalem Nginx servientis operationem. Praebet nucleum functiones ut error logging, configuration lima parsing, eventus agitatae mechanismum, et processus administrationem.
Latin HTTP modulus: Praebet munera ad parsing protocollo HTTP pertinentia, ut: figuram portum, pagina occasus translitterans, HTTP responsionis caput uncinis etc.
Ad libitum HTTP moduli: Maxime ad signa HTTP functiones extendere solebant ut Nginx aliqua officia specialia tractare possint, ut: Multimedia transmissio, parsing petitiones GeoIP, comprimendi retis transmissio, securitas protocollo SSL sustentatio, etc.
Tabellae officium moduli: Maxime ad Nginx officium epistularum sustinendum, addito auxilio POP3 protocollo, IMAP protocollo et protocollo ESMTP
Fluminis muneris moduli: instrumentorum procuratoris vicissim functionis, inter TCP protocollum ineundo
Tertii partis moduli: Nginx servientis applicationis et functionum elit definitarum completas proferre est, ut: Json firmamentum, Lua subsidium, etc.
Nginx version
Versio principalis est versio evolutionis principalis, plerumque numerus versionis imparis, ut 1.19
Versio stabilis est versio stabilis novissima, versio pare numerata, ut: 1.20
Legatum versionum antiquarum versionum stabilium, plerumque versionum etiam numeratarum, ut: 1.18
Nginx institui potest utens yum vel source code, sed commendatur ut fons codicis utatur et instituatur.
Versio yum est maior
Componendis et inaugurari facilius possunt vias relatas customize. Utens source code compilatio potest functiones cognatas consuetudines facere, commodius facere ad usum negotii.
Docker continens directe decurrit
[root@Rocky8 ~]#vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[root@Rocky8 ~]#yum -y install nginx
[root@Rocky8 ~]#rpm -q nginx
nginx-1.26.1-2.el8.ngx.x86_64
Nginx in C lingua scriptum est, itaque Nginx fons codicis institutionem in antecessum vexillum parans requirit. Plenum nomen GCC est (collectio GNU Compilator). -similis, Apple Vexillum compilator pro Mac OS computatorium Ad alias linguas, instrumentum Automake opus est ad perficiendam automatici creationem Facfile. ), zlib (sustinet gzip moduli) et openssl (sustinet modulus ssl), etc.
Officialis fons codice sarcina download inscriptio: https://nginx.org/en/download.html
# 安装依赖包
[root@Ubuntu2204 ~]#apt update
[root@Ubuntu2204 ~]#apt -y install gcc make libpcre3 libpcre3-dev openssl libssl-dev zlib1g-dev
[root@Ubuntu2204 ~]#useradd -r -s /sbin/nologin nginx
[root@Ubuntu2204 ~]#cd /usr/local/src/
[root@Ubuntu2204 src]#wget https://nginx.org/download/nginx-1.22.1.tar.gz
[root@Ubuntu2204 src]#tar xf nginx-1.22.1.tar.gz
[root@Ubuntu2204 src]#cd nginx-1.22.1/
[root@Ubuntu2204 nginx-1.22.1]#./configure --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module
[root@Ubuntu2204 nginx-1.22.1]#make && make install
[root@Ubuntu2204 nginx-1.22.1]#chown -R nginx.nginx /apps/nginx
[root@Ubuntu2204 nginx-1.22.1]#ln -s /apps/nginx/sbin/nginx /usr/sbin/
# 启动nginx
[root@Ubuntu2204 nginx-1.22.1]#cd
[root@Ubuntu2204 ~]#nginx
[root@Ubuntu2204 ~]#ss -nlt
# 关闭nginx
[root@Ubuntu2204 ~]#nginx -s stop
[root@Ubuntu2204 ~]#ss -nlt
# 创建 Nginx 自启动文件
复制同一版本的nginx的yum安装生成的service文件
[root@Ubuntu2204 ~]#vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/apps/nginx/run/nginx.pid
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
LimitNOFILE=100000
[Install]
WantedBy=multi-user.target
# 创建pid文件存放的目录
[root@Ubuntu2204 ~]#mkdir /apps/nginx/run/
# 修改配置文件
[root@Ubuntu2204 ~]#vim /apps/nginx/conf/nginx.conf
pid /apps/nginx/run/nginx.pid;
# 验证 Nginx 自启动文件
[root@Ubuntu2204 ~]#systemctl daemon-reload
[root@Ubuntu2204 ~]#systemctl enable --now nginx.service
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /lib/systemd/system/nginx.service.
[root@Ubuntu2204 ~]#ll /apps/nginx/run/
-rw-r--r-- 1 root root 6 Jul 11 09:45 nginx.pid
[root@Ubuntu2204 ~]#ss -nlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 511 0.0.0.0:80 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
[root@Ubuntu2204 ~]#systemctl stop nginx.service
[root@Ubuntu2204 ~]#systemctl status nginx.service
[root@Ubuntu2204 ~]#ss -nlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*
LISTEN 0 128 [::]:22 [::]:*
# 验证 Nginx 自启动
[root@Ubuntu2204 ~]#reboot
[root@Ubuntu2204 ~]#ss -nlt
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 511 0.0.0.0:80 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*
[root@Ubuntu2204 ~]#systemctl status nginx.service
● nginx.service - nginx - high performance web server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2024-07-11 09:48:58 CST; 1min 5s ago
Docs: https://nginx.org/en/docs/