895 字
4 分钟
Nginx 入门与实战:高性能网站服务架构
一、 什么是 Web 服务?
Web 服务是允许用户通过浏览器访问互联网资源的程序。它采用 请求/响应 模型:服务器处于被动监听状态,只有接收到客户端(浏览器)的 HTTP/HTTPS 请求后,才会将资源(HTML、图片、JSON 等)返回给用户。
在 Web 服务器市场中,Nginx 因其独特的事件驱动架构,在处理高并发连接时表现远超传统的 Apache,成为目前全球最主流的 Web 服务器。
二、 Nginx 核心优势与架构
Nginx(Engine-X)由 Igor Sysoev 开发,其核心设计目标是解决 C10K 问题(即单机同时处理一万个并发连接)。
- 异步非阻塞 I/O:采用
epoll模型,不像传统服务器那样为每个请求创建一个线程,极大地降低了 CPU 开销。 - 高并发、低内存:支持数万并发连接,而内存占用仅需几百 MB。
- 热部署:可以在不停止服务的情况下升级版本、修改配置。
- 全能型选手:集 Web 服务器、反向代理、负载均衡、静态缓存于一体。
三、 Nginx 安装与基础操作
1. 编译安装 (源码定制)
对于需要开启特定模块(如 SSL 或状态监控)的场景,建议使用编译安装:
# 安装依赖yum install -y gcc pcre-devel zlib-devel openssl-devel
# 下载并解压wget https://nginx.org/download/nginx-1.24.0.tar.gztar -zxvf nginx-1.24.0.tar.gz && cd nginx-1.24.0
# 配置、编译、安装./configure --prefix=/usr/local/nginx \ --with-http_ssl_module \ --with-http_stub_status_modulemake && make install2. 常用管理命令
/usr/local/nginx/sbin/nginx # 启动/usr/local/nginx/sbin/nginx -t # 检查配置文件语法是否正确/usr/local/nginx/sbin/nginx -s reload # 平滑重启(不中断现有连接)/usr/local/nginx/sbin/nginx -s quit # 优雅停止四、 核心配置解析
Nginx 的配置文件 nginx.conf 采用层级化结构:
worker_processes auto; # 建议设置为 CPU 核心数
events { worker_connections 1024; # 单个 worker 进程支持的最大连接数}
http { include mime.types; default_type application/octet-stream;
# 负载均衡池定义 upstream my_backend { server 192.168.1.10:8080 weight=3; # 权重 server 192.168.1.11:8080; keepalive 32; # 保持长连接 }
server { listen 80; server_name www.example.com;
# 1. 静态资源处理 location / { root html; index index.html; }
# 2. 反向代理转发 location /api/ { proxy_pass http://my_backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }
# 3. 状态监控 (限内部访问) location /status { stub_status on; allow 127.0.0.1; deny all; } }}五、 实战进阶:反向代理与负载均衡
这是 Nginx 在现代架构中最常见的用法。
1. 什么是反向代理?
- 正向代理:代理客户端(如 VPN),隐藏客户端真实身份。
- 反向代理:代理服务端,隐藏后端服务器的真实 IP,并提供安全防护和负载均衡。
2. 负载均衡策略
- 轮询 (默认):逐一分发,适用于后端性能一致的场景。
- 权重 (Weight):按比例分发,用于后端机器配置不均。
- IP Hash:同一客户端固定访问同一后端,解决 Session 共享问题。
- Least Conn:优先分发给当前连接数最少的服务器。
六、 性能与安全优化技巧
- 启用 Gzip 压缩:减少网络传输带宽。
gzip on;gzip_types text/plain application/json text/css;- 防盗链配置:防止资源被其他网站非法引用。
location ~* \.(jpg|png|gif)$ { valid_referers none blocked *.example.com; if ($invalid_referer) { return 403; }}- 自定义错误页面:
error_page 404 /404.html;location = /404.html { root /opt/nginx/html/error; }总结
Nginx 不仅仅是一个简单的网页服务器,它是现代互联网架构中的“交通枢纽”。通过灵活配置虚拟主机、负载均衡和反向代理,它能显著提升网站的抗压能力和可用性。
Nginx 入门与实战:高性能网站服务架构
https://sw.rscclub.website/posts/nginxansz/