nginx优势以及应用场景,编译安装和nginx(nginx编译安装需要的库)

nginx优势以及应用场景,编译安装和nginx一. Nginx是什么? 1. Nginx概述 高性能、轻量级Web服务软件系统资源消耗低对HTTP并发连接的处理能力高单台物理服务器可支持30,000~50,00

一. Nginx是什么?

1. Nginx概述

它是一款高性能、轻量级的Web服务软件,消耗系统资源很少,可以处理大量并发HTTP连接。单个物理服务器可以支持30,000到50,000个并发请求。 Nginx(发音与“engine x”相同)是高性能的。反向代理和Web 服务器软件由俄罗斯的Igor Sysoev 开发。第一个版本于2004 年发布,源代码在2-clause BSD 许可证下发布。 Nginx因其资源消耗低、运行稳定、高性能并发能力而被互联网公司广泛使用。 Nginx是互联网上最流行的开源Web服务器之一,提供了一整套用于开发和交付的应用技术,也是应用交付领域的开源领导者。 2019 年3 月,F5 宣布将收购Nginx,作为F5 的一部分。 F5表示将加大对开源和Nginx应用平台的投入,致力于发展Nginx开源技术、开发者和社区。

2. Nginx模块与作用

主模块:全局设置模块。配置将运行nginx服务器的用户(组)、worker_processes(进程)数量、nginx进程的PID存储路径、错误日志存储路径、配置文件的引入等。流服务模块:实现反向代理功能,包括TCP协议代理。邮件服务模块:支持Nginx邮件服务,支持POP3、IMAP、SMTP协议。第三方模块:二次开发,扩展Nginx服务器应用,完成开发者定义的功能(例如Json支持、Lua支持等)。 events 模块:影响nginx 服务器和用户之间的网络连接。事件{

工人连接65536;

使用epoll。

打开accept_mutex。

多重接受;

}

http模块:与Web服务相关,扩展了标准HTTP功能,包括自定义服务日志记录、sendfile传输文件、连接超时、单连接请求限制、Flash多媒体传输、GeoIP请求解析以及处理一些特殊服务。安全协议SSL 支持等location模块:uri URL定位。服务器模块:配置服务模块、80端口监控、虚拟主机、DNS域名解析等。 auth_basic 模块:设置网页的用户名和密码。 gzip模块:压缩。代理模块:配置后端IP地址、端口号、http和加密https。 ssl模块:https加密。

3. Nginx三大作用:反向代理、负载均衡、动静分离

反向代理:配置在服务器端,客户端访问服务器A。服务器A是代理服务器,将客户端请求转发到服务器B。

特点:缓存服务器响应,将用户请求分配到多台服务器,减少服务器负载均衡。正向代理:配置在客户端,代理服务器代表客户端与目标服务器进行交互。

特点:提高访问速度,隐藏客户端真实IP地址。负载均衡:将执行分配给多个操作单元(Web服务器、FTP服务器等),共同完成工作任务。

Nginx 7层负载均衡调度算法:

轮询(默认):每个请求按时间顺序分配到不同的后端服务器。上游后端服务器{

服务器192.168.10.14:80 max_fails=2,fail_timeout=10s;

服务器192.168.10.15:80 max_fails=2fail_timeout=10s;

}

加权轮询:指定轮询概率。权重值与访问率成正比。上游后端服务器{

服务器192.168.10.14:80 权重=5 最大失败=2 失败超时=10 秒;

server192.168.10.15:80weight=10max_fails=2fail_timeout=10s;

}

IP哈希:为了解决会话保留问题,根据访问IP的哈希结果分配每个请求。上游后端服务器{

ip_哈希;

服务器192.168.10.14:80 max_fails=2,fail_timeout=10s;

服务器192.168.10.15:80 max_fails=2,fail_timeout=10s;

}

最小连接数:根据Nginx反向代理与后端服务器之间的连接数进行分配,连接数最少的先分配。上游后端服务器{

最小连接数;

服务器192.168.0.14:80 max_fails=2fail_timeout=10s;

服务器192.168.0.15:80 max_fails=2fail_timeout=10s;

}

响应时间(需要编译安装第三方模块):根据后端服务器的响应时间分配请求,响应时间最短的优先。上游后端服务器{

公平的;

服务器192.168.10.14:80 max_fails=2,fail_timeout=10s;

服务器192.168.10.15:80 max_fails=2,fail_timeout=10s;

}

URL哈希(需要编译安装第三方模块):根据访问的URL的哈希结果分发请求,保证相同的URL访问同一台后端服务器。上游后端服务器{

服务器192.168.10.14:80 max_fails=2,fail_timeout=10s;

服务器192.168.10.15:80 max_fails=2,fail_timeout=10s;

哈希$request_uri;

}

动静态分离:通过代理模式,将正则匹配的位置添加到服务器段中,以指定匹配项。 {}静态页面由Nginx 处理,动态页面由PHP-FPM 模块或Apache 处理。

二. Nginx和Apache的差异

Apache

同步多进程模型:一个连接对应一个进程,稳定性高。优势:

重写功能强大(URL跳转实现)。模块很多,基本上都能找到你需要的。它非常稳定并且几乎没有错误。 PHP 支持很简单。处理动态请求更有优势。

Nginx

异步非阻塞模型:支持每个进程的多个连接(万级)并提供高性能。优势:

它是轻量级的,用C 语言编写,并且使用更少的内存和资源。非并发/高并发,高负载能力。静态文件处理性能比Apache 快三倍以上。该设计是高度模块化的,创建模块很容易。虽然配置很简单,但常规配置更简单,您可以使用-t 测试配置。作为负载均衡服务器,支持7层负载均衡,有效防止DDoS攻击。它可以用作反向代理服务器或电子邮件代理服务器。支持热部署和在线升级。

通过这些比较,您可以根据自己的具体需求在Nginx 和Apache 之间进行选择。

三、Nginx的应用场景

网络服务器:

Nginx可以作为一个独立的HTTP服务器来提供HTTP服务。它可以高效处理静态资源(HTML、CSS、JavaScript、图像文件等)的请求,使其成为高性能的静态服务器。 虚拟主机:

Nginx可以在一台物理服务器上配置多个虚拟主机,以适应不同的网站。这可以使用不同的IP 地址、端口号或域名来完成。此功能在托管多个网站时非常有用,并且可以节省硬件成本。 反向代理服务器和负载均衡:

随着网站访问量的增加,单个服务器可能不再能够满足所有用户请求。您可以使用Nginx作为反向代理服务器,将请求分发到多个后端服务器以实现负载均衡。这样就可以保证每台服务器的负载均衡,不会出现服务器过载或闲置的情况。 Nginx还支持各种负载均衡策略,例如轮询、IP哈希等。 安全管理:

Nginx 允许您配置安全管理功能,例如构建API 接口网关。这样Nginx就可以对各个接口服务进行拦截并进行安全检查,防止恶意攻击和未授权访问,提高系统安全性。 缓存服务器:

可以使用Nginx作为缓存服务器,将经常访问的资源缓存在内存中,加快资源访问速度,降低服务器负载,提高整体性能。

四、Nginx为什么能支持高并发

Nginx支持高并发的主要原因是它采用了异步非阻塞架构,利用了Linux的epoll机制,并且可以优化配置细节。

异步非阻塞架构:

如果每个请求都由单独的进程或线程处理,则会消耗大量系统资源并且效率非常低,尤其是在等待网络传输时。 Nginx采用异步非阻塞的运行模式可以有效避免这个问题。 Nginx有一个主调度进程和多个工作进程,当请求到达时,主进程将请求分配给工作进程进行处理。由于大部分请求处理时间都花在了网络传输上,而实际上花在服务器上的时间并不多,Nginx 可以用少量进程高效处理大量并发请求。

五、为什么Nginx不使用多线程

Nginx 使用单线程异步且非阻塞地处理请求。管理员可以配置Nginx主进程的工作进程数量。主要原因有:

节省您的资源。

Nginx不会为每个请求单独分配CPU和内存资源,这显着节省了系统资源。减少CPU 上下文切换。

使用单线程可以避免频繁的上下文切换并提高系统效率。

这样的设计可以让Nginx支持更高的并发,处理更多的请求。

六、Nginx的两种进程分别有什么作用

Nginx 有两个主要进程:master 进程和worker 进程。

主流程:

它负责管理worker进程,读取和加载Nginx配置文件,以及控制Nginx启动、重启和关闭。工人进程:

处理实际的连接请求。每个工作进程处理多个连接,并且可以以异步和非阻塞的方式有效地处理。

七、编译安装nginx

cd /选择/

tar zxvf nginx-1.22.0.tar.gz -C /opt/

cd nginx-1.22.0/

./configure –prefix=/usr/local/nginx –user=nginx –group=nginx –with-http_stub_status_module

make -j16 安装

bash setup-local-yum-repo.sh

yum -y 安装gcc PCRE 开发openssl 开发zlib 开发openssl openssl 开发

make -j16 安装

make -j16 安装

LS

rm setup-local-yum-repo.sh

cd nginx-1.22.0/

./configure –prefix=/usr/local/nginx –user=nginx –group=nginx –with-http_stub_status_module

make -j16 安装

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

tee /lib/systemd/system/nginx.service eof

[单元]

描述=nginx

之后=网络.目标

[服务]

类型=叉子

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

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

ExecReload=/bin/kill -1 $MAINPID

ExecStop=/bin/kill -3 $MAINPID

PrivateTmp=true

[安装]

WantedBy=多用户.Target

埃欧

chmod 777 /lib/systemd/system/nginx.service

sudo useradd -r -d /var/www -s /sbin/nologin nginx

重新加载systemctl 守护进程

使用systemctl启动nginx

百胜安装

Centos7需要安装epel源

cd /etc/yum.repos.d

vim epel.repo

[埃佩尔]

姓名=埃佩尔

baseurl=https://mirrors.aliyun.com/epel/$releasever/x86_64

gpg检查=0

yum install -y epel-release

百胜安装nginx -y

#以上关于nginx的好处及应用场景、编译、安装、nginx相关内容来源网络仅供参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92752.html

(0)
CSDN的头像CSDN
上一篇 2024年6月28日
下一篇 2024年6月28日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注