柚子快报审核要多久778899分享:运维 Nginx

http://yzkb.51969.com/

Nginx是一个高性能的开源Web服务器和反向代理服务器。它最初由俄罗斯的程序设计师Igor Sysoev开发,旨在解决C10k问题,即在一台服务器上同时处理数万个并发连接的能力。

Nginx以其出色的性能和高度可扩展性而闻名。它采用事件驱动的架构和异步非阻塞的处理方式,能够在相对较少的系统资源下处理大量的并发连接。这使得Nginx成为处理高流量和高并发的Web应用程序的理想选择。

以下是Nginx的一些主要特点和用途:

Web服务器:Nginx可以作为静态资源服务器,用于提供网页、图像、视频和其他静态文件。它可以轻松地处理大量的并发请求,提供快速响应和高吞吐量。 反向代理:Nginx可以作为反向代理服务器,将客户端请求转发到后端服务器,然后将响应返回给客户端。这种架构可以增加应用程序的安全性、性能和可靠性,还可以实现负载均衡和高可用性。 负载均衡:Nginx可以根据预定义的算法(如轮询、IP哈希、最少连接等)将请求分发到多个后端服务器,实现负载均衡。这样可以提高系统的可伸缩性和容错性,确保请求在后端服务器之间均匀分布,从而提高整体性能。 高可用性:Nginx支持故障转移和故障恢复机制,可以在后端服务器发生故障时自动切换到备用服务器,确保服务的持续可用性。 SSL/TLS终端:Nginx可以作为SSL/TLS终端,用于处理加密的HTTPS连接。它支持SSL/TLS协议、证书管理和安全加密算法,保护数据在网络传输过程中的安全性

Nginx有一个核心配置文件nginx.conf,由全局块/event/http 三块组成。

 

全局配置,指定使用nginx的用户、使用线程数:一般自动开启与cpu数相同的线程数,进程号pid存放路径以及引入文件

worker_connections 指定每个进程最大网络连接数,在服务机内存以及操作系统允许进程打开文件数的限制之内,连接数可以根据需要调整。

http块结构如上,http块内可以配置多个server,代表配置的多个虚拟主机,在server中可以定义监听的ip和端口并且指定特定的处理规则包含 listen [port],server_name 以及一些第三方的工具配置等,其下的location则是定义不同接口的处理规则。

location块中可以匹配不同的url,例如匹配/user和/login两个路由,采用不同的规则来处理不同两个路由发来的请求,还可以根据请求中携带的请求头信息具体操作。 

upstream也定义在http块内,这个配置用于指定上游服务器地址、负载均衡策略等。

负载均衡,在这个例子中将example.com这个网页的请求代理到上面定义的backend后端服务器组中(proxy_pass),代理会根据负载均衡算法(默认轮询)将请求分别发送,配置server ip weight可以指定某个服务器的权重以调整均衡策略,比如server backend1.example.com weight=3;

Nginx常用的负载均衡策略

轮询(Round Robin): 默认的负载均衡策略,按照每个后端服务器的顺序依次分配请求。适用于后端服务器性能相近的情况。 IP 哈希(IP Hash): 根据客户端的 IP 地址进行哈希计算,将同一 IP 的请求始终分配到同一台后端服务器。可以确保同一客户端的请求都被发送到同一服务器,适用于需要保持会话一致性的场景。 最少连接(Least Connections): 将请求发送到当前连接数最少的后端服务器。适用于后端服务器性能不均衡的情况,可以使得请求更均匀地分配到性能较好的服务器上。 加权轮询(Weighted Round Robin): 根据服务器的权重值分配请求,权重越高的服务器获得的请求数量越多。可以通过调整权重来实现不同服务器的负载均衡。 加权最少连接(Weighted Least Connections): 类似于最少连接策略,但服务器的权重也会考虑在内,将请求发送到当前连接数和权重综合最小的后端服务器。

配置示例:

upstream backend {

server backend1.example.com;

server backend2.example.com weight=2;

server backend3.example.com;

server backend4.example.com ip_hash;

server backend5.example.com least_conn;

}

 根据需要一般选择使用同种负载均衡策略。

Nginx配置请求限流:

http {

# 定义请求限流区域

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;

server {

listen 80;

server_name example.com;

location / {

# 应用请求限流

limit_req zone=mylimit burst=20 nodelay;

# 其他配置项...

}

}

}

上面使用 limit_req_zone 指令定义了一个请求限流区域,名为 mylimit。$binary_remote_addr 表示使用客户端的 IP 地址作为限流的标识符。10m 表示该区域在内存中占用的大小为 10 兆字节。rate=10r/s 表示限制请求速率为每秒 10 个请求。 在 location 配置块中,我们使用 limit_req 指令应用请求限流。zone=mylimit 表示使用之前定义的 mylimit 限流区域。burst=20 表示在超过请求速率限制时,允许的最大突发请求数为 20。nodelay 表示不延迟请求,而是直接返回 503 响应。

以上配置,Nginx 会对每个客户端 IP 地址应用请求限流,限制每秒的请求速率为 10 个请求,允许最大的突发请求数为 20。使用网络爬虫的时候就会经常碰到503错误码,很可能就是触发了nginx限流机制,在程序中加入sleep控制爬虫请求速率即可。

Ngxin静态资源压缩

http {

gzip on;

gzip_types text/plain text/css application/json;

server {

listen 80;

server_name example.com;

location / {

# 其他配置项...

}

location ~* \.(css|js)$ {

gzip_static on;

expires max;

# 其他配置项...

}

}

}

 Nginx作为一个性能优越的静态资源服务器,可以使用gzip模块对静态资源压缩示例为css/js文件,实际上还可以压缩图片、图标等资源,以提高用户访问网页的速度。

柚子快报审核要多久778899分享:运维 Nginx

http://yzkb.51969.com/

相关阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。

大家都在找:

nginx:nginx下载安装

运维:运维工程师