跳转到主要内容
杨月昌的软件博客
返回

Nginx 入门与实战:高性能网站服务架构

一、 什么是 Web 服务?

Web 服务是允许用户通过浏览器访问互联网资源的程序。它采用 请求/响应 模型:服务器处于被动监听状态,只有接收到客户端(浏览器)的 HTTP/HTTPS 请求后,才会将资源(HTML、图片、JSON 等)返回给用户。

在 Web 服务器市场中,Nginx 因其独特的事件驱动架构,在处理高并发连接时表现远超传统的 Apache,成为目前全球最主流的 Web 服务器。


二、 Nginx 核心优势与架构

Nginx(Engine-X)由 Igor Sysoev 开发,其核心设计目标是解决 C10K 问题(即单机同时处理一万个并发连接)。


三、 Nginx 安装与基础操作

1. 编译安装 (源码定制)

对于需要开启特定模块(如 SSL 或状态监控)的场景,建议使用编译安装:

# 安装依赖
yum install -y gcc pcre-devel zlib-devel openssl-devel

# 下载并解压
wget https://nginx.org/download/nginx-1.24.0.tar.gz
tar -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_module
make && make install

2. 常用管理命令

/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. 什么是反向代理?

2. 负载均衡策略


六、 性能与安全优化技巧

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 `location` 和 `rewrite` 的进阶实战
下一篇
如何在 Windows 系统中手动安装和配置 PNPM(2026 进阶版)