您的位置:首页 > 娱乐 > 八卦 > nginx 使用篇 配置

nginx 使用篇 配置

2024/12/22 11:08:19 来源:https://blog.csdn.net/2302_77426533/article/details/142071868  浏览:    关键词:nginx 使用篇 配置

一、介绍

        1.介绍

Nginx是一个高性能的HTTP和反向代理服务器,同时也是一个邮件代理服务器,它以稳定性、丰富的功能集、简单的配置文件和低系统资源消耗而闻名

作为一个轻量级的服务器,Nginx在处理高并发连接方面表现出色,能够支持高达50,000个并发连接数。它的内存占用少,并发能力强,这使得它在同类型的网页服务器中具有显著优势。由于这些特点,Nginx被广泛用于各种场景,包括作为Web服务器、反向代理、负载均衡器以及动静分离处理等。

        2.配置介绍

        nginx的配置 在conf目录下的nginx.conf文件

        nginx.conf文件 主要分为三部分

        ①全局配置:配置一些全局属性

        ②event配置 例如:worker_connections: 这个指令设置了每个worker进程能够同时开启的最大连接数

        ③http配置 :配置http的相关配置

二、nginx使用基本命令

1.启动:双击nginx.exe或者打开cmd命令窗口,切换到nginx解压目录下,输入命令 nginx.exe ,回车即可

2.关闭

(1)输入nginx命令 nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx)

(2)使用taskkill taskkill /f /t /im nginx.exe

  1. taskkill是用来终止进程的,
  2. /f是强制终止 .
  3. /t终止指定的进程和任何由此启动的子进程。
  4. /im示指定的进程名称 .

其他常用命令

三、配置

1.负载均衡

负载均衡的配置写在 http代码块中

        1. nginx通过反向代理服务器实现负载均衡,用户的请求先到达nginx,nginx根据相应的规则分发到多个后端服务器上,以提高系统的可用性和性能。

        2.负载均衡策略:

  • 轮询(默认):按顺序将请求分发到每个服务器。

  • 权重(weight):根据服务器权重进行分发。

  • IP 哈希(ip_hash):根据客户端 IP 地址分发请求,同一个 IP 的请求总是分配到同一个后端服务器。

  • 最少连接(least_conn):将请求分发到当前活动连接最少的服务器。

        3.示例代码

  #动态代理upstream xxxde{#服务器资源server 127.0.0.1:8080 weight=90;server 127.0.0.1:8081 weight=10 ;}server{listen       80;server_name  localhost;#访问80的根目录就会打到这里location / {proxy_pass   http://xxxde/admin/;}}

upstream +名字 中配置服务器的资源

在server中 配置负载均衡

2.动静分离

将打包好的前段页面 放在nginx的html目录下

Nginx的动静分离是一种优化Web服务器性能的策略,通过将动态内容和静态内容的请求处理分开,可以显著提高服务器的响应速度和降低后端负载

实现:

  • 配置Nginx服务器:在Nginx配置文件中设置不同的location块,根据请求的资源类型(静态或动态),将请求引导到不同的处理路径。
  • 静态资源缓存:Nginx可以将静态资源缓存起来,从而减少对后端服务器的请求。

示例代码:

  • location /:匹配所有请求,并将其代理到后端服务器。

  • *location ~ .(jpg|jpeg|png|gif|css|js|ico|html)$**:匹配静态资源文件,并直接由 Nginx 处理。root 指定静态资源的根目录,expires 设置浏览器缓存过期时间。

3.限流

Nginx限流是一种通过控制并发连接数或请求速率来保护服务器的机制,以防止过多的请求影响系统性能

          在高并发的网络环境中,突然涌入的大量请求可能会超出服务器的处理能力,导致性能下降甚至崩溃。通过限流,可以平滑处理请求,防止服务器不堪重负。Nginx提供了多个模块来实现限流功能,如limit_conn_zone、limit_req_zone等。

http {limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;server {listen 80;location / {limit_req zone=mylimit burst=20 nodelay;proxy_pass http://xxxde/admin;}}
}
  • limit_req_zone:定义限流区域,其中 $binary_remote_addr 是客户端 IP 地址,mylimit 是区域名称,10m 是共享内存大小,rate=10r/s 表示每秒最多处理 10 个请求。

  • limit_req:应用限流区域,burst=20 允许的突发请求数, nodelay 表示超过限速的请求立即返回错误而不是排队。

四、总结常见配置

1.全局配置:

        worker_processes 1;配置的作用是设置Nginx的 worker 进程数。

2.event

        worker_connections 1024;用于设置网络连接的参数,表示每个worker进程可以处理的最大并发连接数为1024。

3.http

        ①map $http_upgrade $connection_upgrade{ default upgrade; '' close; }map模块指令,用于根据变量的值来改变另一个变量的值。用来处理协议升级请求的,通常是WebSocket升级,如果请求中包含了升级相关的头信息,Nginx就会尝试进行协议升级;如果没有或请求不包含升级头信息,则正常关闭连接。在websocket时使用

        ②include mime.types;:这个指令用于包含一个名为"mime.types"的文件,该文件包含了各种文件扩展名与对应的MIME类型之间的映射关系。MIME类型是一种标识文件内容类型的标准,例如"text/html"表示HTML文档,"image/jpeg"表示JPEG图像等。通过包含这个文件,Nginx可以自动识别并设置正确的MIME类型,以便客户端能够正确地处理不同类型的文件。

        ③ default_type application/octet-stream;:这个指令设置了默认的MIME类型为"application/octet-stream"。当Nginx无法根据文件扩展名确定具体的MIME类型时,它会使用这个默认值。"application/octet-stream"是一种通用的二进制数据类型,通常用于未知或不可识别的文件类型。这意味着如果请求的文件没有明确的MIME类型,Nginx会将其作为二进制流发送给客户端。

        ④sendfile on;:这个指令启用了sendfile功能。sendfile是一种高效的文件传输方式,它允许操作系统直接将文件内容从磁盘发送到网络套接字,而无需经过用户空间的缓冲区。这样可以节省CPU资源,提高文件传输的速度。当启用sendfile时,Nginx会使用操作系统提供的sendfile系统调用来发送文件,而不是通过读取文件内容并写入套接字的方式。

        ⑤keepalive_timeout 65;:这个指令设置了keep-alive连接的超时时间。keep-alive是一种HTTP/1.1协议的特性,它允许客户端和服务器之间保持持久连接,以便在同一个TCP连接上发送多个请求和响应。keepalive_timeout指定了在没有新的请求到达之前,服务器应该保持连接的时间(以秒为单位)。在这个例子中,keepalive_timeout被设置为65秒。这意味着如果客户端在65秒内没有发送新的请求,服务器将关闭连接。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com