您当前的位置:首页 > 电脑百科 > 站长技术 > 服务器

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

时间:2023-03-13 15:05:13  来源:今日头条  作者:数据库干货铺
本篇带给大家 Nginx 配置文件中常用的指令和参数,通过对这些指令和参数的设置,可以对 Nginx 服务器进行灵活、高效、安全的配置。

 

 

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

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 的配置非常灵活,可以根据具体需求进行定制化配置。

其他配置

除了上面提到的常用配置,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 加密算法,以提高安全性。

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



Tags:Nginx   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
本篇带给大家 Nginx 配置文件中常用的指令和参数,通过对这些指令和参数的设置,可以对 Nginx 服务器进行灵活、高效、安全的配置。 Nginx 是一款高性能的 Web 服务器软件,同时...【详细内容】
2023-03-13  Tags: Nginx  点击:(0)  评论:(0)  加入收藏
Nginx是一个高性能的Web服务器,它可以用来进行反向代理和负载均衡。在本文中,我们将深入探讨Nginx反向代理和负载均衡的概念、作用以及实现方式。一、什么是Nginx反向代理?在理...【详细内容】
2023-02-24  Tags: Nginx  点击:(17)  评论:(0)  加入收藏
本文分享自华为云社区《【高并发】使用Nginx实现限流》,作者:冰 河。Nginx作为一款高性能的Web代理和负载均衡服务器,往往会部署在一些互联网应用比较前置的位置。此时,我们就可...【详细内容】
2023-02-06  Tags: Nginx  点击:(23)  评论:(0)  加入收藏
背景开发有一个服务部署在阿里云上,依赖阿里云的CLB(传统型负载均衡)暴露服务,因特殊要求,CLB和后端服务之间需要通过自建Nginx做代理,拓扑图如下,应用拓扑操作客户端的请求经过了...【详细内容】
2023-02-03  Tags: Nginx  点击:(30)  评论:(0)  加入收藏
HTTPS 请求跳转如下面的配置:location /test {proxy_pass http://www.baidu.com/;在访问 URI 为 /test 时会跳转到百度,但此时浏览器中的 URL 也会发生变化。这是因为:向 http:...【详细内容】
2023-01-29  Tags: Nginx  点击:(104)  评论:(0)  加入收藏
nginx作为反向代理服务器时,报错: upstream timed out (110: Connection timed out)……经过百度,google看到都是修改nginx配置,解决超时问题,比如:large_client_head...【详细内容】
2023-01-10  Tags: Nginx  点击:(68)  评论:(0)  加入收藏
1.问题背景项目组最近新开了一个项目,规模还比较大,目前正在开发第一版本的功能。其中涉及到一个mp3文件上传至阿里云oss的逻辑,后端接口开发好了以后,并通过一个简陋的上传页面...【详细内容】
2023-01-10  Tags: Nginx  点击:(199)  评论:(0)  加入收藏
写在前面 分享一些 Nginx 用户认证、SSL 加密配置的笔记 博文内容涉及 Nginx 用户认证、SSL 加密配置 Demo通过 OpenSSL 生成使用 SSL 证书、私钥和 CSR Demo 理解不足小伙...【详细内容】
2022-12-27  Tags: Nginx  点击:(10)  评论:(0)  加入收藏
‬架构如上图所示Lua-resty-ffi提供了一个高效和通用的API,用于使用主流语言(go、Python、java、Rust等)进行开放式编程。因为是通过c扩展直接调用因此可以保证性能,对于任何...【详细内容】
2022-12-03  Tags: Nginx  点击:(84)  评论:(0)  加入收藏
Worker_processer number设定为cpu核心数或auto,避免cpu在不同进程之间的切换,引起系统的开销Accept_mutex默认是开启的,表示是否打开accept锁,打开的情况下,nginx的多个worker...【详细内容】
2022-12-02  Tags: Nginx  点击:(87)  评论:(0)  加入收藏
▌简易百科推荐
本篇带给大家 Nginx 配置文件中常用的指令和参数,通过对这些指令和参数的设置,可以对 Nginx 服务器进行灵活、高效、安全的配置。 Nginx 是一款高性能的 Web 服务器软件,同时...【详细内容】
2023-03-13  数据库干货铺  今日头条  Tags:Nginx   点击:(0)  评论:(0)  加入收藏
使用用户账号进行 ssh 连接认证有密码被泄露的风险,为了规避这个风险,可以使用密钥的方式进行身份认证。使用密钥就需要将公钥添加到服务器,我们今天介绍一下如何将公钥添加到...【详细内容】
2023-03-13   TIAP  微信公众号  Tags:ssh   点击:(2)  评论:(0)  加入收藏
这里就不麻烦地建 Web 项目了,用一个最原始的 Java 项目来模拟高 CPU 场景。打开 IDEA,创建一个 Java 项目,里面写一个死循环,循环里面不断地创建对象。相比于一大堆复杂的 JVM...【详细内容】
2023-03-06  飞天小牛肉  微信公众号  Tags:CPU   点击:(13)  评论:(0)  加入收藏
如今越来越多的网站已经开始安装SSL证书,只要安装ssl证书之后,可以保障网站的数据安全,关于ssl证书的内容,之前已经介绍过很多了,今天为大家讲解的是Nginx 301永久重定向配置以及...【详细内容】
2023-03-03  沃通WoTrus  今日头条  Tags:Ngnix   点击:(13)  评论:(0)  加入收藏
ChatGPT发布之后,引发了全球范围的关注和讨论,国内各大厂商相继宣布GPT模型开发计划。据各公司官网,2023年2月7日,百度宣布将推出ChatGPT类似产品“文心一言”,预计今年3月展开内...【详细内容】
2023-03-02  架构师技术联盟    Tags:ChatGPT   点击:(12)  评论:(0)  加入收藏
本文分享自华为云社区《【平滑上云】Apache Sentry->Ranger平滑升级方案-云社区-华为云》,作者: 啊喔YeYe 。背景介绍 CDH是Apache Hadoop和相关项目的最完整、最受测试和最...【详细内容】
2023-02-28  蒲公英互联    Tags:Apache   点击:(30)  评论:(0)  加入收藏
哈喽,大家好,我是指北君。最近项目中准备使用消息中间件Apache Pulsar,借着机会先做个简单了解吧。Apache PulsarApache Pulsar是Apache软件基金会顶级项目,是下一代云原生分布...【详细内容】
2023-02-28  Java技术指北    Tags:MQ   点击:(14)  评论:(0)  加入收藏
微信小程序因官方需求文档要求后台使用HTTPS请求进行网络通信,不满足条件的域名和协议无法请求。越来越多的开发者纷纷使用SSL证书实践微信小程序的应用情况,但仍然会碰到各种...【详细内容】
2023-02-28  沃通WoTrus    Tags:HTTPS   点击:(11)  评论:(0)  加入收藏
Nginx是一个高性能的Web服务器,它可以用来进行反向代理和负载均衡。在本文中,我们将深入探讨Nginx反向代理和负载均衡的概念、作用以及实现方式。一、什么是Nginx反向代理?在理...【详细内容】
2023-02-24  Java编程世界  今日头条  Tags:Nginx   点击:(17)  评论:(0)  加入收藏
您的Apache HTTP服务器生成的日志数据是信息的宝库。使用这些信息,您可以判断您服务器的使用情况、找出漏洞所在,并设法改进服务器结构和整体性能。审核您的Apache日志可在以...【详细内容】
2023-02-16  运维有小邓    Tags:Apache   点击:(31)  评论:(0)  加入收藏
站内最新
站内热门
站内头条