本篇带给大家 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_typeApplication/octet-stream; # 默认 MIME 类型log_formatmain'$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.logmain; # 访问日志路径和格式sendfileon; # 是否开启文件传输优化#tcp_nopushon; # 是否开启 TCP NOPUSH 模式#keepalive_timeout0; # HTTP keep-alive 连接超时时间server {listen80; # 监听端口server_nameexample.com; # 域名或 IP 地址charset utf-8; # 字符编码location / {root/usr/share/nginx/html; # 静态文件根目录indexindex.html index.htm; # 默认首页文件}error_page500 502 503 504/50x.html; # 错误页面location = /50x.html {root/usr/share/nginx/html;}location /api/ {proxy_pass http://127.0.0.1:8000/; # 反向代理到后端应用服务器}# HTTPS 配置# listen443 ssl;# server_nameexample.com;# ssl_certificate/path/to/cert;# ssl_certificate_key/path/to/key;# ssl_session_cacheshared:SSL:1m;# ssl_session_timeout5m;# ssl_ciphersHIGH:!aNULL:!MD5;# ssl_prefer_server_cipherson;}}
在上面的配置文件中,包含了 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
说明:指定 Nginx 运行的用户和用户组,以增强安全性 。默认情况下,Nginx 运行的用户和用户组是 nobody,可以通过设置 user 指定其他用户和用户组 。
- worker_processes
说明:指定 worker 进程的数量,默认为 1 。可以根据服务器的 CPU 核心数进行设置,以充分利用服务器资源 。
- worker_cpu_affinity
说明:指定 worker 进程的 CPU 亲和性,以控制进程在哪些 CPU 上运行 。cpumask 是一个 32 位的二进制数,每一位代表一个 CPU,1 表示该 CPU 是可用的,0 表示该 CPU 不可用 。可以使用 0x 前缀指定十六进制数,或使用逗号分隔多个 cpumask 。