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

Nginx配置文件中的关键字是什么?

时间:2023-11-22 15:01:17  来源:微信公众号  作者:数据库干货铺
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 number;
 
说明:指定 worker 进程的数量,默认为 1。可以根据服务器的 CPU 核心数进行设置,以充分利用服务器资源。
  • worker_processes
  • 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 服务器无法正常运行。


Tags:Nginx   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
为什么Nginx被称为“反向”代理呢?
Nginx(发音为"engine-x")是一款高性能、轻量级的开源Web服务器软件,也可用作反向代理服务器、负载均衡器和HTTP缓存。Nginx之所以有被称为“反向”代理,是因为它充当客户端设备...【详细内容】
2024-02-01  Search: Nginx  点击:(59)  评论:(0)  加入收藏
如何在Java环境中安装Nginx?
1. 下载Nginx:首先,前往Nginx官方网站(https://nginx.org/en/download.html)下载新版本的Nginx。选择适合您操作系统的版本,通常有Windows、Linux和Mac等不同操作系统的版本可供...【详细内容】
2024-01-22  Search: Nginx  点击:(58)  评论:(0)  加入收藏
一文教你学会使用Nginx
前段时间,了不起给大家说过如果使用 Docker 发布自己的后端项目,也就不再使用 Jar 包进行项目的发版操作,但是这其中就又涉及到了前端如何发版,为什么这么说,因为资深前端开发,可...【详细内容】
2023-12-27  Search: Nginx  点击:(87)  评论:(0)  加入收藏
Nginx 反向代理为什么叫做“反向”?
今天我们来聊聊正向代理和反向代理。01 正向代理(Forward Proxy)正向代理是位于用户设备和互联网之间的服务器。它代理的是客户端,是站在用户一方的。其真实客户端对于服务器不...【详细内容】
2023-12-06  Search: Nginx  点击:(90)  评论:(0)  加入收藏
Nginx的负载均衡实现,你学会了吗?
环境 主机 ip 用途 软件 web1 192.168.50.60 nginx-1 httpd web2 192.168.50.61 nginx-2 httpd proxy 192.168.50.62 负载...【详细内容】
2023-12-06  Search: Nginx  点击:(145)  评论:(0)  加入收藏
Nginx如何开启GZIP文件压缩,你学会了吗?
简介GZip 是一种改进web应用程序性能的技术,文件压缩后再传输可以减少传输数据,提升传输速度。在Nginx服务器上开启Gzip压缩可以有效减少网络传输流量,提升网站的访问速度和性...【详细内容】
2023-11-30  Search: Nginx  点击:(121)  评论:(0)  加入收藏
Nginx配置文件中的关键字是什么?
Nginx 是一款高性能的 Web 服务器软件,同时也是一款反向代理服务器软件。Nginx 的配置文件通常是 /etc/nginx/nginx.conf,以下是一个典型的配置文件,并对其中的关键字进行详细...【详细内容】
2023-11-22  Search: Nginx  点击:(147)  评论:(0)  加入收藏
Nginx 大揭秘:读写分离助力您轻松征服高并发
引言在构建高性能、高可用的 Web 应用时,如何有效地处理数据库的读写负担已成为一个十分重要的考虑因素。Nginx 作为一款强大的反向代理服务器,提供了简单而灵活的负载均衡配...【详细内容】
2023-11-14  Search: Nginx  点击:(50)  评论:(0)  加入收藏
Kubernetes 部署应用(Nginx)的两种方式,你更喜欢哪一种?
k8s发布应用的两种方式: kubernetes-dashboard kubectl命令行一、Dashboard方式配置部署:包含应用名称、容器镒、pod数量、Service非常的方便,不想设置配置yaml的可以很方便的...【详细内容】
2023-11-06  Search: Nginx  点击:(367)  评论:(0)  加入收藏
掌握Nginx的高级用法,构建高性能Web应用
Nginx是一款高性能的Web服务器和反向代理服务器,它广泛用于构建高性能、可靠和安全的Web应用程序。除了基本的用法外,Nginx还提供了一些高级功能和配置选项,可以进一步优化性能...【详细内容】
2023-10-26  Search: Nginx  点击:(218)  评论:(0)  加入收藏
▌简易百科推荐
为什么Nginx被称为“反向”代理呢?
Nginx(发音为"engine-x")是一款高性能、轻量级的开源Web服务器软件,也可用作反向代理服务器、负载均衡器和HTTP缓存。Nginx之所以有被称为“反向”代理,是因为它充当客户端设备...【详细内容】
2024-02-01  coderidea  微信公众号  Tags:Nginx   点击:(59)  评论:(0)  加入收藏
哪种服务器操作系统更好呢?
在当今的IT世界中,服务器操作系统扮演着至关重要的角色。它们是确保服务器能够高效、安全地运行的关键因素。然而,对于许多人来说,服务器操作系统的种类和特点可能是一个复杂的...【详细内容】
2024-01-30    简易百科  Tags:操作系统   点击:(75)  评论:(0)  加入收藏
什么是VPS服务器
VPS服务器是一种虚拟化技术,它将一台物理服务器划分为多个虚拟的独立服务器,每个虚拟服务器都可以拥有自己的操作系统、运行环境、应用程序等。这种技术使得每个虚拟服务器可...【详细内容】
2024-01-30    简易百科  Tags:VPS服务器   点击:(67)  评论:(0)  加入收藏
VPS服务器下载速度慢?这五招帮你提速
VPS服务器下载速度慢可能会让用户感到沮丧,尤其是对于需要大量下载和上传数据的用户。幸运的是,有一些方法可以帮助您提高VPS服务器的下载速度,使您的在线体验更加顺畅。在本文...【详细内容】
2024-01-30  IDC行业观察者    Tags:VPS服务器   点击:(56)  评论:(0)  加入收藏
美国VPS和英国VPS:地理位置对服务器性能的影响
在今天的数字时代,VPS已成为在线业务和网站托管的关键组成部分。然而,选择合适的VPS主机服务时,地理位置通常被忽视,尽管它对服务器性能有着重要的影响。本文将探讨美国VPS和英...【详细内容】
2024-01-26  IDC行业观察者    Tags:服务器   点击:(50)  评论:(0)  加入收藏
如何判断服务器所需带宽:基于业务需求和流量模式的关键考量
在选择服务器时,带宽是一个重要的考虑因素。带宽的大小直接影响到网站的加载速度和用户的访问体验。那么,如何判断服务器需要多大的带宽呢?本文将为你揭示这一关键问题的答案...【详细内容】
2024-01-26  源库科技    Tags:服务器   点击:(71)  评论:(0)  加入收藏
服务器内存空间及IO操作原理解析
服务器的内存空间分为内核空间和用户空间,而我们编写的程序通常在用户空间中运行。在进行读写操作时,我们直接操作的是用户缓冲区,而用户缓冲区的内容来自于内核缓冲区。这种内...【详细内容】
2024-01-23  王建立    Tags:服务器   点击:(42)  评论:(0)  加入收藏
如何在Java环境中安装Nginx?
1. 下载Nginx:首先,前往Nginx官方网站(https://nginx.org/en/download.html)下载新版本的Nginx。选择适合您操作系统的版本,通常有Windows、Linux和Mac等不同操作系统的版本可供...【详细内容】
2024-01-22  敲代码的小动    Tags:Nginx   点击:(58)  评论:(0)  加入收藏
服务器证书和SSL证书有啥区别?
在互联网经济时代,随着越来越多的信息以及合作都是从企业官网开始的,因此绝大多数企业都会为自己的网站配置SSL证书,以提高安全性。在接触SSL证书时,也有很多人称之为服务器证书...【详细内容】
2024-01-10  安信SSL证书    Tags:服务器证书   点击:(65)  评论:(0)  加入收藏
宝塔面板怎样部署java项目?
宝塔面板怎样部署java项目?在使用宝塔面板部署Java项目之前,需要确保已经安装了Java Development Kit (JDK)。接下来,将介绍如何使用宝塔面板来部署Java项目的步骤。步骤一:安装...【详细内容】
2024-01-09  西部数码    Tags:宝塔面板   点击:(103)  评论:(0)  加入收藏
站内最新
站内热门
站内头条