Nginx配置文件中的关键字是什么?详细解释来了

点击上方蓝字关注我

f416e588566c49a2d8aa03d340a78af5.png

Nginx 是一款高性能的 Web 服务器软件,同时也是一款反向代理服务器软件。Nginx 的配置文件通常是 /etc/nginx/nginx.conf,以下是一个典型的配置文件,并对其中的关键字进行详细解释。

1.  配置文件

perlCopy codeuser nginx;              # 运行 Nginx 的用户
worker_processes 1;      # 工作进程的数量
error_log /var/log/nginx/error.log warn;   # 错误日志路径和级别
pid /var/run/nginx.pid;  # 进程 ID 文件路径

events {
    worker_connections 1024; # 每个 worker 进程的最大并发连接数
}

http {
    include       /etc/nginx/mime.types; # MIME 类型配置文件
    default_type  application/octet-stream; # 默认 MIME 类型

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"'; # 日志格式

    access_log  /var/log/nginx/access.log  main; # 访问日志路径和格式

    sendfile        on; # 是否开启文件传输优化
    #tcp_nopush     on; # 是否开启 TCP NOPUSH 模式
    #keepalive_timeout  0; # HTTP keep-alive 连接超时时间

    server {
        listen       80; # 监听端口
        server_name  example.com; # 域名或 IP 地址
        charset utf-8; # 字符编码

        location / {
            root   /usr/share/nginx/html; # 静态文件根目录
            index  index.html index.htm; # 默认首页文件
        }

        error_page   500 502 503 504  /50x.html; # 错误页面
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

        location /api/ {
            proxy_pass http://127.0.0.1:8000/; # 反向代理到后端应用服务器
        }

        # HTTPS 配置
        # listen       443 ssl;
        # server_name  example.com;
        # ssl_certificate      /path/to/cert;
        # ssl_certificate_key  /path/to/key;
        # ssl_session_cache    shared:SSL:1m;
        # ssl_session_timeout  5m;
        # ssl_ciphers  HIGH:!aNULL:!MD5;
        # ssl_prefer_server_ciphers  on;
    }
}

在上面的配置文件中,包含了 user、worker_processes、error_log、pid、events、http、include、default_type、log_format、access_log、sendfile、keepalive_timeout 等关键字,解释说明如下:

user: 指定运行 Nginx 的用户。通常为 nginx 用户。
worker_processes: 指定 Nginx 工作进程的数量。通常为 CPU 核心数的 2 倍。
error_log: 指定 Nginx 错误日志的路径和级别。级别包括 debug、info、notice、warn、error、crit、alert、emerg 等。
pid: 指定 Nginx 进程 ID 文件的路径。
events: 指定 Nginx 事件模型的参数,如 worker_connections 指定每个 worker 进程的最大并发连接数。
http: 定义 HTTP 协议的配置,包括 MIME 类型、日志格式、访问日志路径和格式、文件传输优化、TCP NOPUSH 模式等。
include: 引入外部配置文件,如 MIME 类型配置文件 /etc/nginx/mime.types。
default_type: 指定默认的 MIME 类型。
log_format: 指定访问日志的格式。
access_log: 指定访问日志的路径和格式。
sendfile: 指定是否开启文件传输优化。
keepalive_timeout: 指定 HTTP keep-alive 连接超时时间。
server: 定义一个虚拟主机,包括监听端口、域名或 IP 地址、字符编码、静态文件根目录、默认首页文件、错误页面、反向代理配置等。
listen: 指定监听的端口,如 80、443。
server_name: 指定域名或 IP 地址。
charset: 指定字符编码。
location: 定义 URL 路径匹配规则,包括静态文件根目录、默认首页文件、错误页面、反向代理配置等。

以上就是 Nginx 配置文件中一些常用关键字的详细解释,Nginx 的配置非常灵活,可以根据具体需求进行定制化配置。

2. 其他配置

除了上面提到的常用配置,Nginx 还支持一些其他配置,包括:

  • user

语法:

user user_name [group_name];

说明:指定 Nginx 运行的用户和用户组,以增强安全性。默认情况下,Nginx 运行的用户和用户组是 nobody,可以通过设置 user 指定其他用户和用户组。

  • worker_processes

语法:

worker_processes number;

说明:指定 worker 进程的数量,默认为 1。可以根据服务器的 CPU 核心数进行设置,以充分利用服务器资源。

worker_cpu_affinity

语法:worker_cpu_affinity cpumask1 [cpumask2 ...];

说明:指定 worker 进程的 CPU 亲和性,以控制进程在哪些 CPU 上运行。cpumask 是一个 32 位的二进制数,每一位代表一个 CPU,1 表示该 CPU 是可用的,0 表示该 CPU 不可用。可以使用 0x 前缀指定十六进制数,或使用逗号分隔多个 cpumask。

  • worker_rlimit_nofile

语法:

worker_rlimit_nofile number;

说明:指定 worker 进程的文件描述符限制。文件描述符是操作系统用来识别文件的一种方式,Nginx 中每个连接都需要一个文件描述符。可以通过设置 worker_rlimit_nofile 增加 worker 进程的文件描述符数量,以支持更多的并发连接。

  • worker_shutdown_timeout

语法

worker_shutdown_timeout time;

说明:指定 worker 进程退出的超时时间,单位为秒。当 Nginx 需要重启或停止时,会先发送一个信号给 worker 进程,然后等待一段时间让 worker 进程完成未完成的请求和任务。可以通过设置 worker_shutdown_timeout 增加等待时间,以确保 worker 进程能够正确退出。

  • http2

语法:

http2 on|off;

说明:指定是否开启 HTTP/2 协议支持。HTTP/2 是 HTTP 协议的最新版本,可以提升网页加载速度和安全性。可以通过设置 http2 on 开启 HTTP/2 协议支持。

  • ssl

语法:

ssl on|off;

说明:指定 SSL/TLS 协议的配置,包括证书、私钥、加密套件等。SSL/TLS 协议是一种加密传输协议,可以保障数据在网络传输过程中的安全性。可以通过设置 ssl on 开启 SSL/TLS 协议支持。

  • proxy_pass

语法:

proxy_pass URL;

说明:指定反向代理的目标地址,即要转发的服务器地址。当用户发起请求时,Nginx 会将请求转发给目标服务器处理,并将处理结果返回给用户。

  • proxy_set_header

语法:

proxy_set_header field value;

说明:指定转发请求头的参数,如 `X-Real-IP、Referer等。在进行反向代理时,可以通过设置proxy_set_header` 将请求头中的一些参数传递给目标服务器,以便服务器根据这些参数进行处理。

  • client_max_body_size

语法:

client_max_body_size size;

说明:指定客户端请求体的最大大小,以防止恶意用户发送过大的请求体导致服务器崩溃。可以通过设置 client_max_body_size 限制请求体的大小,以保障服务器的稳定性。

  • gzip

语法:

gzip on|off;

说明:指定是否开启 Gzip 压缩。Gzip 压缩是一种常见的压缩算法,可以在传输数据时减少数据量,提高网页加载速度。可以通过设置 gzip on 开启 Gzip 压缩。

  • server_tokens

语法:

server_tokens on|off;

说明:指定是否显示 Nginx 版本号等信息。默认情况下,Nginx 在响应头中会显示版本号等信息,可以通过设置 server_tokens off 隐藏这些信息,以增强安全性。

  • access_log

语法:

access_log path [format [buffer=size] [flush=time] [if=condition]];

说明:指定访问日志的路径、格式、缓存大小和定时刷新时间。可以通过设置 access_log 记录访问日志,以便进行访问统计和分析。

  • error_log

语法:

error_log path [level];

说明:指定错误日志的路径和级别。可以通过设置 error_log 记录错误日志,以便进行错误排查和分析。

  • include

语法:

include file_path;

说明:指定引入其他配置文件。可以通过设置 include 引入其他配置文件,以便进行配置的分离和管理。

  • ssl

语法:

ssl on|off;

说明:指定是否开启 SSL/TLS 加密。可以通过设置 ssl on 开启 SSL/TLS 加密,以保障数据的安全性。需要在配置文件中指定 SSL/TLS 证书和私钥等参数。

  • ssl_certificate 和 ssl_certificate_key

语法:

ssl_certificate file_path; 和 ssl_certificate_key file_path;

说明:指定 SSL/TLS 证书和私钥的路径。SSL/TLS 证书和私钥是进行 SSL/TLS 加密的必要参数,需要事先准备好证书和私钥文件,并在配置文件中指定路径。

  • ssl_protocols

语法:

ssl_protocols protocol1 [protocol2 ...];

说明:指定 SSL/TLS 加密协议的版本。可以通过设置 ssl_protocols 限制 SSL/TLS 加密协议的版本,以提高安全性。常用的 SSL/TLS 加密协议版本包括 SSLv2、SSLv3、TLSv1、TLSv1.1 和 TLSv1.2 等。

  • ssl_ciphers

语法:

ssl_ciphers cipher1 [cipher2 ...];

说明:指定 SSL/TLS 加密算法的密钥套件。可以通过设置 ssl_ciphers 限制 SSL/TLS 加密算法的密钥套件,以提高安全性。常用的 SSL/TLS 加密算法包括 AES、DES、3DES、RC4 等。

  • ssl_prefer_server_ciphers

语法:

ssl_prefer_server_ciphers on|off;

说明:指定是否优先使用服务器端支持的 SSL/TLS 加密算法。可以通过设置 ssl_prefer_server_ciphers on 优先使用服务器端支持的 SSL/TLS 加密算法,以提高安全性。

3.  结语

以上提到的是Nginx 配置文件中常用的指令和参数,通过对这些指令和参数的设置,可以对 Nginx 服务器进行灵活、高效、安全的配置。当然,除了以上列出的指令和参数,Nginx 还有很多其他的指令和参数,需要根据实际需求进行设置。同时,需要注意指令和参数的语法和使用方法,以免配置文件出现语法错误导致 Nginx 服务器无法正常运行。

9c3579d732ed5e0c8ca4e0d885f25fa5.png

往期精彩回顾

1.  MySQL高可用之MHA集群部署

2.  mysql8.0新增用户及加密规则修改的那些事

3.  比hive快10倍的大数据查询利器-- presto

4.  监控利器出鞘:Prometheus+Grafana监控MySQL、Redis数据库

5.  PostgreSQL主从复制--物理复制

6.  MySQL传统点位复制在线转为GTID模式复制

7.  MySQL敏感数据加密及解密

8.  MySQL数据备份及还原(一)

9.  MySQL数据备份及还原(二)

b00208651ebc1297c8b8663190ec72e9.png

扫码关注     

d72fdcc5659365d8b8eba0832a4266b1.jpeg

295b5464360f51503139bed684956390.png

a92fb85609c7390a6b6468632a9e0e45.png

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

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

相关文章

【论文阅读笔记】Emu Edit: Precise Image Editing via Recognition and Generation Tasks

【论文阅读笔记】Emu Edit: Precise Image Editing via Recognition and Generation Tasks 论文阅读笔记论文信息摘要背景方法结果额外 关键发现作者动机相关工作1. 使用输入和编辑图像的对齐和详细描述来执行特定的编辑2. 另一类图像编辑模型采用输入掩码作为附加输入 。3. 为…

RK3588平台开发系列讲解(嵌入式AI篇)RKNPU详解

文章目录 一、CPU、GPU、FPGA和NPU介绍二、CPU、GPU、FPGA和NPU区别三、NPU 应用四、RKNPU沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本篇将给大家介绍什么是RKNPU。 一、CPU、GPU、FPGA和NPU介绍 二、CPU、GPU、FPGA和NPU区别 若考虑成本、功耗、计算能力以及体…

[SIGGRAPH-23] 3D Gaussian Splatting for Real-Time Radiance Field Rendering

pdf | proj | code 本文提出一种新的3D数据表达形式3D Gaussians。每个Gaussian由以下参数组成:中心点位置、协方差矩阵、可见性、颜色。通过世界坐标系到相机坐标系,再到图像坐标系的仿射关系,可将3D Gaussian映射到相机坐标系,通…

cocos2dx ​​Animate3D(二)

Twirl 扭曲旋转特效 // 持续时间(时间过后不会回到原来的样子) // 整个屏幕被分成几行几列 // 扭曲中心位置 // 扭曲的数量 // 振幅 static Twirl* create(float duration, const Size& gridSize, const Vec2& position, unsigned int twirls, float amplitude)…

Leetcode:622. 设计循环队列 题解【具详细】

目录 一、题目: 二、思路详解: 1.循环队列的存储定义 2.循环队列的创建 3.循环队列的判空与判断情况 (1) 循环队列的判空: (2) 循环队列的判满 4.循环队列元素的插入 5.循环队列元素的删除 6.获取队头元素 7.获取队尾元素 8.循环队列释放 三…

frp内网穿透配置以及相关端口、过程解释

介绍 假设现有外网笔记本、云服务器、内网工作站三台设备,希望使用外网笔记本通过云服务器转发,访问内网工作站;这里使用frp进行内网穿透。 云服务器端配置 登录腾讯轻量型云服务器控制台,开放转发端口、bind_port以及deshboad…

CSDN等级权益概览

文章目录 一、[权益概览](https://blog.csdn.net/SoftwareTeacher/article/details/114499372)二、权益详情(更新中...)2.1、等级权益2.2、原创保护2.3、推广管理2.4、博客皮肤 一、权益概览 级别对应分数解释权益未定级0这类用户没有做任何贡献。或者曾…

EMG肌肉信号处理合集 (一)

本文归纳了常见的肌肉信号预处理流程,方便EMG信号的后续分析。使用pyemgpipeline库 来进行信号的处理。文中使用了 UC Irvine 数据库的下肢数据。 目录 1 使用wrappers 定义数据类,来进行后续的操作 2 肌电信号DC偏置去除 3 带通滤波器处理 4 对肌电…

Windows安装Hadoop运行环境

1、下载Hadoop 2、解压Hadoop tar zxvf hadoop-3.1.1.tar.gz3、设置Hadoop环境变量 3.1.1、系统环境变量 # HADOOP_HOME D:\software\hadoop-3.1.13.1.2、Path 环境变量 %HADOOP_HOME%\bin %HADOOP_HOME%\sbin3.1.3、修改Hadoop文件JAVA_HOME 注 : 路径中不要出现空格 ,…

原理Redis-SkipList

SkipList ZipList和QuickList的共同特点是节省内存。在遍历元素时,只能从头到尾或从尾到头,所以在查找头尾元素性能还是不错的,但是中间元素查询的性能就会差。 **SkipList(跳表)**首先是链表,但与传统链表…

阿里云99元服务器ECS经济型e实例性能如何?测评来了

阿里云服务器优惠99元一年,配置为云服务器ECS经济型e实例,2核2G配置、3M固定带宽和40G ESSD Entry系统盘,CPU采用Intel Xeon Platinum架构处理器,2.5 GHz主频,3M带宽下载速度384KB/秒,上传速度1028KB/秒&am…

链表OJ--上

文章目录 前言一、反转链表二、移除链表元素三、链表中倒数第K个结点四、相交链表五、链表的中间结点 前言 一、反转链表 力扣206:反转链表- - -点击此处传送 思路图: 方法一:改变指向 方法二: 代码: //方法一 /…

BLE通用广播包

文章目录 1、蓝牙广播数据格式2、扫描响应数据 1、蓝牙广播数据格式 蓝牙广播包的最大长度是37个字节,其中设备地址占用了6个字节,只有31个字节是可用的。这31个可用的字节又按照一定的格式来组织,被分割为n个AD Structure。如下图所示&…

【11月比赛合集】48场可报名的数据挖掘大奖赛,任君挑选!

CompHub[1] 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…)比赛。本账号会推送最新的比赛消息,欢迎关注! 以下信息仅供参考,以比赛官网为准 目录 Kaggle(9场比赛)阿里天池(…

Java计算时间差,距结束还有几天几小时几分钟

文章目录 1、写法2、备份3、LocalDate、LocalDateTime、Date、String互转 1、写法 //静态方法,传入年月日时分秒 LocalDateTime startTime LocalDateTime.of(2023, 11, 22, 15, 09, 59); LocalDateTime endTime LocalDateTime.of(2023, 11, 30, 0, 0, 0); //计算…

华清远见嵌入式学习——网络编程——作业4

作业要求&#xff1a;①使用IO多路复用中的select函数实现TCP并发服务器客户端 ②使用IO多路复用中的poll函数实现TCP并发服务器的服务器端 一、 代码 #include <myhead.h>#define SERPORT 8888 //服务器端口号 #define SERIP "192.168.114.113"…

PCIE链路训练-状态跳转1

A&#xff1a;12ms超时&#xff0c;或者再任何lane上检测到Electrical Idle Exit&#xff1b; B&#xff1a; 1.发送“receiver detection”之后没有一个lane的接收逻辑被rx检测到 2.不满足条件c&#xff0c;比如两次detection出现差别&#xff1b; C&#xff1a;发送端在没…

数据分析基础之《matplotlib(1)—介绍》

一、什么是matplotlib 1、专门用于开发2D图表&#xff08;包括3D图表&#xff09; 2、使用起来及其简单 3、以渐进、交互方式实现数据可视化 4、matplotlib mat&#xff1a;matrix&#xff08;矩阵&#xff09; plot&#xff1a;画图 lib&#xff1a;库 二、为什么要学习m…

万界星空科技SMT行业生产管理MES系统解决方案

一、SMT行业特点&#xff1a; SMT&#xff08;Surface Mounted Technology&#xff09;作为电子组装行业里首先的技术和工艺&#xff0c;选择合适的MES解决方案来保障SMT生产的成功至关重要。 电子行业涉及的范围非常广&#xff0c;包含了汽车、电脑、电视、手机等产品上&…

SPASS-ARIMA模型

基本概念 在预测中,对于平稳的时间序列,可用自回归移动平均(AutoRegres- sive Moving Average, ARMA)模型及特殊情况的自回归(AutoRegressive, AR)模型、移动平均(Moving Average, MA)模型等来拟合,预测该时间序列的未来值,但在实际的经济预测中,随机数据序列往往…