终极 Nginx 配置指南:最新版实践
创作时间:
作者:
@小白创作中心
终极 Nginx 配置指南:最新版实践
引用
CSDN
等
8
来源
1.
https://blog.csdn.net/weixin_45081413/article/details/138792348
2.
https://github.com/nginx/nginx/releases
3.
https://docs.nginx-cn.net/nginx-oss-sub/releases
4.
https://nginx.org/en/download.html
5.
https://en.linuxadictos.com/nginx-1-24-0-has-already-been-released-and-these-are-its-news.html
6.
https://www.oschina.net/news/214308/nginx-1-22-1-n-1-23-2-released
7.
https://devopsden.io/article/what-are-changes-in-nginx-1.24
8.
https://www.phoronix.com/news/Nginx-1.24-Released
Nginx 1.27.1 是目前最新的稳定版本,于 2024 年 8 月 14 日发布。作为全球第二大 Web 服务器,Nginx 在高流量网站和应用程序中占据重要地位。本文将详细介绍 Nginx 的最新配置指南,从基础配置到高级功能,从最佳实践到常见问题解决,帮助读者全面掌握 Nginx 的使用和优化。
01
Nginx 配置文件结构
Nginx 的配置文件通常位于 /etc/nginx/nginx.conf
或 /usr/local/nginx/conf/nginx.conf
。配置文件由多个指令块组成,主要包括以下几个部分:
全局块
全局块包含影响 Nginx 全局的指令,通常位于配置文件的最顶部。
user www-data;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
user
:指定运行 Nginx 的用户和组。worker_processes
:指定工作进程的数量,通常设置为 CPU 核心数或auto
。error_log
:指定错误日志的路径和日志级别。pid
:指定 Nginx 主进程的 PID 文件路径。
events 块
events 块用于配置网络连接相关的参数。
events {
worker_connections 1024;
use epoll;
multi_accept on;
}
worker_connections
:每个工作进程允许的最大连接数。use
:指定事件模型,如epoll
(Linux 高效事件模型)。multi_accept
:允许每个工作进程同时接受多个连接。
http 块
http 块是 Nginx 配置的核心部分,用于配置 HTTP 服务器相关指令。
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name example.com;
location / {
root /var/www/html;
index index.html index.htm;
}
}
}
include
:包含其他配置文件,如 MIME 类型文件。default_type
:设置默认的 MIME 类型。access_log
:指定访问日志的路径和格式。sendfile
:启用高效文件传输模式。keepalive_timeout
:设置客户端与服务器之间的长连接超时时间。gzip
:启用 Gzip 压缩,减少传输数据量。
server 块
server 块用于配置虚拟主机,每个 server 块对应一个虚拟主机。
server {
listen 80;
server_name example.com www.example.com;
location / {
root /var/www/example;
index index.html index.htm;
}
location /images/ {
alias /var/www/images/;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
listen
:指定监听的端口和 IP 地址。server_name
:指定虚拟主机的域名。location
:配置请求的路由和处理方式。
location 块
location 块用于配置请求的路由和处理方式,支持正则表达式匹配。
location / {
root /var/www/html;
index index.html index.htm;
}
location /images/ {
alias /var/www/images/;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
root
:指定请求的根目录。index
:指定默认的索引文件。alias
:定义路径别名,用于替换 location 路径。~
:表示使用正则表达式匹配。fastcgi_pass
:指定 FastCGI 服务器的地址。
02
高级功能配置
反向代理配置
Nginx 常用作反向代理服务器,将客户端请求转发到后端服务器。
location /api/ {
proxy_pass http://backend_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
proxy_pass
:指定后端服务器的地址。proxy_set_header
:设置转发给后端服务器的请求头。
SSL/TLS 配置
Nginx 支持 SSL/TLS 加密,保护数据传输的安全性。在最新版本中,默认启用了 TLSv1.3 协议。
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/example.com.crt;
ssl_certificate_key /etc/nginx/ssl/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /var/www/html;
index index.html index.htm;
}
}
ssl_certificate
:指定 SSL 证书文件路径。ssl_certificate_key
:指定 SSL 私钥文件路径。ssl_protocols
:指定使用的 SSL/TLS 协议版本。ssl_ciphers
:指定加密套件。ssl_prefer_server_ciphers
:优先使用服务器端的加密套件。
负载均衡配置
Nginx 可以作为负载均衡器,将请求分发到多个后端服务器。
upstream backend {
server 192.168.1.101;
server 192.168.1.102;
server 192.168.1.103;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
}
}
upstream
:定义后端服务器组。server
:指定后端服务器的地址。
03
最佳实践
性能优化建议
- 启用 Gzip 压缩
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
- 使用缓存
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
proxy_cache_key "$scheme$request_method$host$request_uri";
- 优化连接设置
keepalive_timeout 65;
keepalive_requests 100;
安全配置建议
- 限制请求方法
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 444;
}
- 防止点击劫持
add_header X-Frame-Options SAMEORIGIN;
- 防止 XSS 攻击
add_header X-XSS-Protection "1; mode=block";
日常运维经验分享
- 定期检查日志
tail -f /var/log/nginx/error.log
使用 Nginx Plus 或开源监控工具进行监控
定期更新 Nginx 版本,应用安全补丁
04
常见问题与解决方案
502 Bad Gateway
- 检查后端服务器是否正常运行
- 检查 Nginx 和后端服务器之间的网络连接
403 Forbidden
- 检查文件权限和目录权限
- 确保 Nginx 用户有读取权限
SSL/TLS 握手失败
- 检查证书和私钥是否匹配
- 确保 OpenSSL 版本兼容
性能瓶颈
- 优化配置参数(如 worker_processes、worker_connections)
- 使用缓存和压缩
- 调整操作系统内核参数
Nginx 的配置文件结构清晰,指令丰富,能够满足各种复杂的 Web 服务器需求。通过合理配置,可以充分发挥 Nginx 的高性能和高并发处理能力。无论是初学者还是资深运维人员,都能从这份配置指南中获得宝贵的知识和经验。
热门推荐
甲流阳性率周增123%,专家建议:保持乐观很重要
二月十五九天玄女诞辰,饮食禁忌有讲究,4吃2不吃,寓意万事如意,增福旺财
工业机器人与智能制造:电气自动化专业毕业生的新宠
电气工程及其自动化专业课程揭秘
武威至新疆自驾游,打卡最美景点
买预售房必看:五步走完购房流程,三大要点需谨记
胸椎脊柱炎的治疗药物有哪些?
买房别贪便宜:6种户型暗藏居住隐患解析
《封神榜》妲己一角成就温碧霞,从此艳星变实力派
大理民宿攻略:如何选择最适合你的住宿?
国艺美术馆馆长详解:书法落款的规范与技巧
书法落款有讲究:格式、字体到文化内涵全解析
书法落款全解析:单款双款、长款穷款及现代创新
保元汤:补气温阳功效显著,专家提醒理性看待“逆龄”说
58岁温碧霞:从风月片女王到实力派的华丽转身
苹果美版跟国行有啥区别?如何选择适合你的iPhone?买前必看
古诗走红网络:从《登鹳雀楼》到《静夜思》
依维柯得意露营车改装:固定床铺设计与施工要点
消炎修复效果好,黄芪霜成湿疹皮炎治疗新宠
Lexicon MPX 500效果器使用指南:从入门到精通
五部电影里的双面人生:解读双子座的复杂性格
白鲜皮治疗湿疹湿毒效果好,这些使用注意事项要记牢
长安车主必看:这些保养秘籍让你的爱车长寿
99.99%消杀率!紫外线灯在校园甲流防控中的正确使用指南
冬季甲流高发,科学家庭消毒指南
甲流高发期,这些科学消毒方法请收好
针灸遇上AI:中风康复迎来科技革新
湘西贵州旅游攻略:5大景点、特色美食和住宿推荐
寒假调适指南:学生自我管理与家长引导全攻略
寒假带娃这样玩:室内外结合的亲子健康游戏攻略