当前位置: 首页 > news >正文

Nginx 配置文件的完整指南 (一)

文章目录

    • 一、简介
      • 1.1 配置文件一览
    • 二、全局配置
      • 2.0 user
      • 2.1 worker_processes
      • 2.2 events模块
      • 2.3 http模块
    • 三、server模块
      • 3.1 listen
      • 3.2 server_name
      • 3.3 location:请求处理位置

Nginx 配置文件的完整指南 (二)

一、简介

  Nginx是一款高性能的Web服务器和反向代理服务器,它的配置文件起着关键的作用。Nginx配置文件定义了服务器的行为和特性,允许管理员对服务器进行灵活的配置和定制。

1.1 配置文件一览

  Nginx的主配置文件nginx.conf的内容如下:

在这里插入图片描述



二、全局配置


  全局配置顾名思义全局生效,只需要配置一次即可。

2.0 user

  指定Nginx worker进程运行的用户和用户组,要和nginx.conf文件设置的用户访问权限一致。

user root;

2.1 worker_processes

  worker_processes用于设置Nginx的工作进程数。每个工作进程都可以处理并发的连接请求。

worker_processes 4;   # 表示Nginx将启动4个工作进程来处理连接请求

  一般来说,可以设置为CPU核心数的2倍,以充分利用服务器的资源。但是,过多的工作进程可能会导致资源竞争和性能下降,因此需要根据实际情况进行调整。

  还可以考虑使用auto关键字设置为自动获取CPU核心数的值。

worker_processes auto;

2.2 events模块

  用于配置Nginx的事件模块,包括并发连接数等参数设置。

events {worker_connections 1024;
}

  worker_connections:设置每个工作进程的最大并发连接数。每个连接都会占用一定的内存,因此需要根据服务器资源和预期负载来调整该值。一般建议将其设置为1024或更高。


2.3 http模块

  用于配置HTTP服务器的行为和特性,包括配置MIME类型、日志、缓冲、压缩、反向代理、负载均衡等,是我们填写配置的核心区域。

http {include       mime.types;default_type  application/octet-stream;# 日志配置access_log  /var/log/nginx/access.log  main;..........# 连接超时和缓冲区配置client_body_timeout 12s;..........# 压缩配置gzip on;..........# 路由和反向代理配置server {..........}# SSL/TLS 配置server {listen       443 ssl;..........}
}
  1. include mime.types;:用于包含一个名为 mime.types 的文件。该 文件定义了 MIME 类型与文件扩展名之间的映射关系。

    • MIME 类型用于标识文件的内容类型,例如 text/html 表示 HTML 文件,image/jpeg 表示 JPEG 图像文件等。通过包含 mime.types 文件,Nginx 可以根据文件扩展名来确定响应的 MIME 类型,并在处理请求时使用适当的 MIME 类型。
  2. default_type application/octet-stream;:设置默认的 MIME 类型。如果 Nginx 在处理请求时无法确定文件的 MIME 类型,将使用 application/octet-stream 作为默认的 MIME 类型。

    • application/octet-stream是一个通用的二进制流类型,表示未知或不可识别的文件类型。



三、server模块


  server块是Nginx配置文件中定义基本服务器的关键部分。每个server块定义了一个虚拟主机或服务器的配置。

3.1 listen

  设置服务器监听的端口和地址,可以根据需要设置不同的端口号,一个server只能设置一个监听端口。

server {listen 80;  # 监听80端口的所有请求
}

3.2 server_name

  设置服务器的名称或域名。

  当客户端发送请求到 Nginx 服务器时,Nginx 会根据请求中的域名与配置文件中的 server_name 进行匹配。如果请求的域名与某个服务器块的server_name匹配成功,Nginx 将使用该服务器块来处理请求。

  可以使用以下几种方式进行配置:

  1. 单个域名:例如,server_name example.com;,表示只匹配请求的域名为 example.com 的情况。
server {server_name example.com;
}
  1. 多个域名:可以使用空格或逗号分隔多个域名。例如,server_name example.com www.example.com;,表示匹配请求的域名为 example.comwww.example.com 的情况。
server {server_name example.xxx.com test.xxx.com;
}
  1. 通配符:可以使用通配符来匹配多个域名。例如,server_name *.example.com;,表示匹配所有以 example.com 作为后缀的域名。

  2. 正则表达式:可以使用正则表达式来进行更灵活的匹配。例如,server_name ~^(www\.)?example\.com$;,表示匹配以 example.comwww.example.com 开头的域名。


3.3 location:请求处理位置

  用于匹配不同的 URL 路径,并指定相应的处理方式,如代理请求、返回静态文件、执行脚本等。

  location 可以在全局配置块中使用,也可以在 server 块或 location 块中使用。

  1. 精确匹配:
location = /path {# 处理 /path 的请求...
}
  1. 前缀匹配:
location ^~ /static {# 处理以 /static 开头的请求root /var/www/html;...
}
  1. 正则表达式匹配:
location ~ \.(jpg|png)$ {# 处理以 .jpg 或 .png 结尾的请求root /var/www/images;...
}
  1. 常规匹配:
location /path {# 处理包含 /path 的请求...
}

  需要注意指令的匹配顺序非常重要,因为 Nginx 将按照配置文件中location指令的顺序进行匹配。因此应该将最具体的匹配规则放在前面,以确保正确的匹配和处理顺序。


Nginx 配置文件的完整指南 (二)——反向代理、负载均衡配置

相关文章:

Nginx 配置文件的完整指南 (一)

文章目录 一、简介1.1 配置文件一览 二、全局配置2.0 user2.1 worker_processes2.2 events模块2.3 http模块 三、server模块3.1 listen3.2 server_name3.3 location:请求处理位置 Nginx 配置文件的完整指南 (二) 一、简介 Nginx是一款高性能的Web服务器和反向代理服…...

css3+js 画出爱心特效

要使用CSS3和JavaScript绘制爱心特效&#xff0c;可以使用CSS3的动画和过渡效果来创建爱心的形状&#xff0c;并使用JavaScript来控制动画的触发和交互。以下是一个简单的示例代码&#xff1a; HTML: <div class"heart"></div> <button onclick&quo…...

蔚来李斌卖手机:安卓系统,苹果售价,一年一发

‍作者 | Amy 编辑 | 德新 车圈大佬的玩法真让人寻不着套路&#xff01; 苹果的库克和小米的雷布斯&#xff0c;甚至是FF贾老板准备许久&#xff0c;都想分一块新能源车的蛋糕&#xff0c;蔚来李斌却反手进军手机界&#xff0c;从宣布造手机到手机入网仅仅隔了一年。 近期&a…...

0008__浏览器层面缓存 Etag If-None-Match等详解

浏览器层面缓存 Etag & If-None-Match等详解_if-none-match:_shadow_zed的博客-CSDN博客...

Idea 快捷键整理

Idea快捷键和自动代码补全汇总 idea快捷键汇总 Ctrl 快捷键说明Ctrl F在当前文件进行文本查找 &#xff08;必备&#xff09;Ctrl R在当前文件进行文本替换 &#xff08;必备&#xff09;Ctrl Z撤销 &#xff08;必备&#xff09;Ctrl Y删除光标所在行 或 删除选中的行 &am…...

管理类联考——逻辑——真题篇——按知识分类——汇总篇——一、形式逻辑——假言——第一节 充分条件

文章目录 第一节 充分条件假言命题-那么,就,则真题(2013-29)-假言-充分假言-那么,就,则-变形推理真题(2014-44)-假言-充分假言-那么,就,则-(1)建模-“那么/就/则”-前推后真题(2018-37)-假言-充分假言-那么,就,则-(1)建模-“那么/就/则”-前推后;-(2)A→…...

LSTM模型

目录 LSTM模型 LSTM结构图 LSTM的核心思想 细胞状态 遗忘门 输入门 输出门 RNN模型 LRNN LSTM模型 什么是LSTM模型 LSTM (Long Short-Term Memory)也称长短时记忆结构,它是传统RNN的变体,与经典RNN相比能够有效捕捉长序列之间的语义关联,缓解梯度消失或爆炸现象.同时LS…...

抢红包小程序

抢红包小程序 红包大战 # urls.pyfrom django.urls import pathfrom . import viewsurlpatterns [ path(login/, views.login, namelogin), path(create_red_packet/, views.create_red_packet, namecreate_red_packet), path(join_red_packet/<int:red_packet_id…...

UVA 10006 埃氏筛法+快速幂

本题目使用费马定理时&#xff0c;我随机定义了10个数字&#xff0c;循环用费马小定理判断&#xff0c;数组中的值不用和我的相同&#xff0c;随机即可。 #include <iostream> using namespace std; typedef unsigned long long ll; bool isPrime[65007]; ll a[10]; voi…...

C++--红黑树

1.什么是红黑树 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路径会比其他路径长出俩倍&#xff0c;因…...

Unity 找不到 Navigation 组件的解决

当我们想利用unity 里面的Navigation 组件来实现我们的物体的自动导航时&#xff0c;有时竟然会发现我们的菜单栏里面找不到 该组件 这时我们应该怎么办&#xff1f; 请确保你的项目中已经导入了Unity的AI模块。要导入该模块&#xff0c;请打开"Project Settings"&am…...

【js】时间和时间戳转换、日期格式化

1、时间戳转换日期方法 &#xff08;格式&#xff1a;2023-08-17&#xff09; function timestampToDate(date) {var date new Date(date);var YY date.getFullYear() -;var MM (date.getMonth() 1 < 10 ? 0 (date.getMonth() 1) : date.getMonth() 1) -;var DD …...

glog体验第一天(0)glog介绍和安装

在Ubuntu上安装glog&#xff0c;可以按照以下步骤进行操作&#xff1a; 打开终端&#xff0c;使用以下命令更新本地软件包列表&#xff1a; sudo apt-get update然后&#xff0c;使用以下命令安装glog库及其开发工具&#xff1a; sudo apt-get install -y libgoogle-glog-de…...

Android 13像Settings一样获取SIM卡信息

一.背景 由于客户定制的Settings里面需要获取到SIM卡信息,所以需要实现此功能。 目录 一.背景 二.前提条件 三.调用api 二.前提条件 首先应用肯定要是系统应用,并且导入framework.jar包,具体可以参考: Android 应用自动开启辅助(无障碍)功能并使用辅助(无障碍)功能_…...

Can‘t find end of central directory : is this a zip file ? at XMLHttpRequest

导出woed出现这个报错,原因其实很简单,路径写错了, 这个word首先必须是docx格式,然后必须放在public文件包下 如果放在public文件包下还没有用,则放在public包下 参考帖子: https://www.cnblogs.com/hejun26/p/13647927.html...

基于SpringBoot+Thymeleaf仓库管理系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 随着信息技术的快速发…...

ubuntu20.04磁盘满了 /dev/mapper/ubuntu--vg-ubuntu--lv 占用 100%

问题 执行 mysql 大文件导入任务&#xff0c;最后快完成了&#xff0c;查看结果发现错了&#xff01;悲催&#xff01;都执行了 两天了 The table ‘XXXXXX’ is full &#xff1f; 磁盘满了&#xff1f; 刚好之前另一个 centos 服务器上也出现过磁盘满了&#xff0c;因此&a…...

【制作npm包4】api-extractor 学习

制作npm包目录 本文是系列文章&#xff0c; 作者一个橙子pro&#xff0c;本系列文章大纲如下。转载或者商业修改必须注明文章出处 一、申请npm账号、个人包和组织包区别 二、了解 package.json 相关配置 三、 了解 tsconfig.json 相关配置 四、 api-extractor 学习 五、npm包…...

神经网络基础-神经网络补充概念-52-正则化网络的激活函数

概念 正则化是一种用于减少过拟合&#xff08;overfitting&#xff09;的技术&#xff0c;可以在神经网络的各个层次中应用&#xff0c;包括激活函数。激活函数的正则化主要目的是减少神经网络的复杂度&#xff0c;防止网络在训练集上过度学习&#xff0c;从而提高泛化能力。 …...

代码随想录训练营day56| 583. 两个字符串的删除操作 72. 编辑距离

TOC 前言 代码随想录算法训练营day56 一、Leetcode 583. 两个字符串的删除操作 1.题目 给定两个单词 word1 和 word2 &#xff0c;返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 示例 1&#xff1a; 输入: word1 "sea",…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

今日科技热点速览

&#x1f525; 今日科技热点速览 &#x1f3ae; 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售&#xff0c;主打更强图形性能与沉浸式体验&#xff0c;支持多模态交互&#xff0c;受到全球玩家热捧 。 &#x1f916; 人工智能持续突破 DeepSeek-R1&…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...