Nginx常用配置详解(1)

Nginx常用配置详解

在这里插入图片描述

一、全局块(main)配置

在Nginx的配置文件中,最外层的部分是全局块。这部分配置通常会影响Nginx服务器整体的运行参数。

  1. worker_processes
    • 作用:这个配置指令用于指定Nginx工作进程的数量。工作进程是Nginx处理客户端请求的核心部分。例如,设置worker_processes 4;表示Nginx会启动4个工作进程来处理请求。合理设置工作进程数量可以充分利用服务器的多核CPU资源。一般来说,如果服务器是多核CPU,将其设置为CPU核心数可以获得较好的性能。
  2. error_log
    • 作用:用于指定Nginx错误日志的存放路径和日志级别。例如,error_log /var/log/nginx/error.log;将错误日志存储在/var/log/nginx/目录下的error.log文件中。日志级别可以是debuginfonoticewarnerror等。debug级别记录最详细的信息,包括调试信息等,但会产生大量日志文件;error级别只记录错误信息,用于排查严重问题。

二、http块配置

http块包含了服务器处理HTTP相关的配置,这是Nginx配置的核心部分之一。

  1. server
    • 作用:一个server块定义了一个虚拟服务器。在一台Nginx服务器上可以配置多个虚拟服务器,以分别处理不同域名或IP地址的请求。
    • 示例配置
      server {
          listen       80;
          server_name  example.com;
          root         /var/www/html;
      }
      
      • listen:指定服务器监听的端口号,这里是80端口,这是HTTP协议的默认端口。也可以指定IP地址和端口的组合,如listen 192.168.1.100:8080;表示只监听指定IP地址的8080端口。
      • server_name:定义服务器名称,即域名。当客户端请求的域名与server_name匹配时,Nginx会将请求路由到这个server块进行处理。可以设置多个域名,中间用空格隔开,如server_name example.com www.example.com;,这样这两个域名的请求都会被该server块处理。
      • root:指定了服务器的根目录,也就是当客户端请求一个相对路径时,Nginx会从这个根目录下查找对应的文件。例如,客户端请求http://example.com/index.html,Nginx会在/var/www/html目录下查找index.html文件。
  2. location
    • 作用:用于基于请求的URI(统一资源标识符)来匹配请求,并对匹配的请求进行特定的处理。location块可以嵌套在server块内部。
    • 示例配置
      location / {
          try_files $uri $uri/ =404;
      }
      
      • try_files:这条指令用于按顺序尝试查找文件。$uri表示请求的URI路径,$uri/表示在请求路径后添加一个斜杠后的路径。=404表示如果前面的文件都找不到,就返回404错误。例如,当客户端请求http://example.com/about.html时,Nginx会先尝试查找/var/www/html/about.html文件,如果不存在,再尝试查找/var/www/html/about.html/目录下的默认文件(如index.html),如果还是找不到就返回404错误。
    • 不同类型的location匹配规则
      • 精确匹配:使用=前缀,如location = /login.html {... },这种情况下只有当请求的URI完全等于/login.html时才会匹配。
      • 前缀匹配:这是最常用的匹配方式,没有前缀符号。例如location /images/ {... }会匹配以/images/开头的所有请求,如/images/logo.png/images/subdir/file.txt等。
      • 正则表达式匹配:使用~(区分大小写)或~*(不区分大小写)前缀。例如location ~ \.php$ {... }会匹配所有以.php结尾的请求,用于将PHP请求转发到后端的PHP - FPM服务器进行处理。

三、其他常用配置

  1. access_log
    • 作用:用于记录客户端访问日志。例如,access_log /var/log/nginx/access.log main;将访问日志存储在/var/log/nginx/access.log文件中,main是日志格式的名称。可以自定义日志格式来记录更多有用的信息,如客户端IP地址、请求时间、请求方法、请求的URI等。
  2. sendfile
    • 作用:这个配置指令用于启用或禁用Nginx的sendfile功能。sendfile可以在将文件发送给客户端时,直接从内核缓冲区复制数据到网络缓冲区,减少了数据在内核空间和用户空间之间的拷贝次数,从而提高文件传输的效率。设置sendfile on;开启这个功能,默认情况下通常是开启的。
  3. keepalive_timeout
    • 作用:用于设置和客户端的长连接超时时间。例如,keepalive_timeout 65;表示Nginx在65秒内没有收到客户端的新请求,就会关闭连接。长连接可以减少建立和关闭连接的开销,提高服务器性能,尤其在处理多个请求来自同一个客户端的场景下非常有用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/939576.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣2300.咒语和药水的成功对数(二分法)

根据 灵茶山艾府 题解所写 题目描述: 给你两个正整数数组 spells 和 potions ,长度分别为 n 和 m ,其中 spells[i] 表示第 i 个咒语的能量强度,potions[j] 表示第 j 瓶药水的能量强度。 同时给你一个整数 success 。一个咒语和药…

电商大数据的几种获取渠道分享!

在当今数字化时代,电商大数据已成为企业决策和运营的重要基础。如何高效地获取、分析和利用这些数据,对于提升电商企业的竞争力至关重要。本文将详细介绍几种电商大数据的获取渠道,帮助电商从业者更好地掌握数据资源,提升业务洞察…

CQRS Design Pattern in Microservices - CQRS模式

原文链接 CQRS Design Pattern in Microservices - GeeksforGeeks 【文章看起来像是AI写的。。。 😂😂😂】 简介 实现步骤 1,识别有界上下文:(Identify Bounded Contexts:) 2,命…

c语言----选择结构

基本概念 选择结构是C语言中用于根据条件判断来执行不同代码块的结构。它允许程序在不同的条件下执行不同的操作,使程序具有决策能力。 if语句 单分支if语句 语法格式: if (条件表达式) { 执行语句块; } 功能: 当条件表达式的值为真&#…

RK3588 , mpp硬编码rgb, 保存MP4视频文件.

RK3588 , mpp硬编码yuv, 保存MP4视频文件. ⚡️ 传送 ➡️ RK3588, FFmpeg 拉流 RTSP, mpp 硬解码转RGBRk3588 FFmpeg 拉流 RTSP, 硬解码转RGBUbuntu x64 架构, 交叉编译aarch64 FFmpeg mppCode Init MppMPP_RET init_mpp

uniapp blob格式转换为video .mp4文件使用ffmpeg工具

前言 介绍一下这三种对象使用场景 您前端一旦涉及到文件或图片上传Q到服务器,就势必离不了 Blob/File /base64 三种主流的类型它们之间 互转 也成了常态 Blob - FileBlob -Base64Base64 - BlobFile-Base64Base64 _ File uniapp 上传文件 现在已获取到了blob格式的…

【Linux运维】配置ssh免密登录

1.场景描述 内网环境,需要同步17服务器的文件到10服务器进行备份。因为每次输入密码比较繁琐,如果实现免密登录后,即可简化脚本。 要求:需要2台服务器-免密登录 2.方案分析 (1)现状:登录需要输…

使用Python从阿里云物联网平台获取STM32温度数据

在物联网(IoT)应用中,设备数据的采集与监控至关重要。本文将详细介绍如何使用Python从阿里云物联网平台获取STM32设备的温度数据。我们将从已有的Java代码出发,逐步将其转换为Python,并处理在过程中遇到的问题&#xf…

职场上,如何做好自我保护?

今天我们讨论一个话题:在职场上,如何保护好自己?废话不多说,我们直接上干货。 (一) 1.时刻准备一点零食或代餐,如果遇到长时间的会议,就补充点能量。代餐最好选流体,这…

网络编程 02:IP 地址,IP 地址的作用、分类,通过 Java 实现 IP 地址的信息获取

一、概述 记录时间 [2024-12-18] 前置文章:网络编程 01:计算机网络概述,网络的作用,网络通信的要素,以及网络通信协议与分层模型 本文讲述网络编程相关知识——IP 地址,包括 IP 地址的作用、分类&#xff…

tryhackme-Pre Security-HTTP in Detail(HTTP的详细内容)

任务一:What is HTTP(S)?(什么是http(s)) 1.What is HTTP? (HyperText Transfer Protocol)(什么是 HTTP?(超文本传输协议)) http是你查看网站的时候遵循的…

UDP网络编程套接

目录 本文核心 预备知识 1.端口号 认识TCP协议 认识UDP协议 网络字节序 socket编程接口 sockaddr结构 UDP套接字编程 服务端 客户端 TCP与UDP传输的区别 可靠性: 传输方式: 用途: 头部开销: 速度: li…

MyBatis-Plus中isNull与SQL语法详解:处理空值的正确姿势

目录 前言1. 探讨2. 基本知识3. 总结 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 基本的Java知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全&#x…

EGO Swarm翻译

目录 摘要 Ⅰ 介绍 Ⅱ 相关工作 A . 单四旋翼局部规划 B . 拓扑规划 C. 分布式无人机集群 Ⅲ 基于梯度的局部规划隐式拓扑轨迹生成 A.无需ESDF梯度的局部路径规划 B.隐式拓扑轨迹生成 Ⅳ 无人机集群导航 A 机间避碰 B. 定位漂移补偿 C. 从深度图像中去除agent Ⅴ …

电商数据采集电商,行业数据分析,平台数据获取|稳定的API接口数据

电商数据采集可以通过多种方式完成,其中包括人工采集、使用电商平台提供的API接口、以及利用爬虫技术等自动化工具。以下是一些常用的电商数据采集方法: 人工采集:人工采集主要是通过基本的“复制粘贴”的方式在电商平台上进行数据的收集&am…

PostgreSQL和Postgis安装

Windows下PostgreSQL和对应的版本的Postgis安装 PostgreSQL安装 1、官网下载地址 https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 2、根据自己的系统下载完成,Windows下可以直接傻瓜式安装就OK 建议不要通过自带的这个程序安装postgis,…

代码开发相关操作

使用Vue项目管理器创建项目:(vue脚手架安装一次就可以全局使用) windowR打开命令窗口,输入vue ui,进入GUI页面,点击创建-> 设置项目名称,在初始化git下面输入:init project&…

Vulnhub DC-6靶机攻击实战(一)

导语   之前的分享中我们介绍了关于Vulnhub虚拟机前五个机器的攻防演练测试,接下来我们继续分享Vulnhub DC-6靶机攻击实战。 文章目录 搭建测试环境第一步、信息采集第二步、wpscan爆破第三步、开始查找其他的用户第四步、提权总结搭建测试环境 首先需要从Vulnhub官网中下载…

深度学习之超分辨率算法——FRCNN

– 对之前SRCNN算法的改进 输出层采用转置卷积层放大尺寸,这样可以直接将低分辨率图片输入模型中,解决了输入尺度问题。改变特征维数,使用更小的卷积核和使用更多的映射层。卷积核更小,加入了更多的激活层。共享其中的映射层&…

深度学习从入门到精通——图像分割实战DeeplabV3

DeeplabV3算法 参数配置关于数据集的配置训练集参数 数据预处理模块DataSet构建模块测试一下数据集去正则化模型加载模块DeepLABV3 参数配置 关于数据集的配置 parser argparse.ArgumentParser()# Datset Optionsparser.add_argument("--data_root", typestr, defa…