Nginx 实战指南

时间:2024-01-23 09:08:28

Nginx 是一款高性能的开源反向代理服务器,也可用作负载均衡器、Web服务器和缓存服务器。本实战指南将带你深入了解 Nginx 的安装、基础配置、高级配置、最佳实践以及性能调优。

步骤 1: 安装 Nginx

Ubuntu

sudo apt update
sudo apt install nginx

CentOS

sudo yum install epel-release
sudo yum install nginx

步骤 2: 基础配置

1. 静态网站配置

编辑 Nginx 配置文件:

sudo nano /etc/nginx/nginx.conf

server 部分添加以下配置:

server {
    listen 80;
    server_name your_domain.com www.your_domain.com;

    root /var/www/html;  # 修改为你的网站根目录
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

保存并退出,然后重新加载配置:

sudo nginx -s reload

2. 反向代理配置

编辑 Nginx 配置文件:

sudo nano /etc/nginx/nginx.conf

server 部分添加以下配置:

server {
    listen 80;
    server_name your_domain.com;

    location / {
        proxy_pass http://your_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;
    }
}

替换 your_domain.comyour_backend_server 为实际的域名和后端服务器地址。

步骤 3: 高级配置

SSL/TLS 配置

server {
    listen 443 ssl;
    server_name your_domain.com;

    ssl_certificate /etc/nginx/ssl/your_domain.crt;  # 替换为你的 SSL 证书路径
    ssl_certificate_key /etc/nginx/ssl/your_domain.key;  # 替换为你的 SSL 证书私钥路径

    location / {
        proxy_pass http://your_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;
    }
}

负载均衡配置

http {
    upstream backend {
        server backend1.example.com;
        server backend2.example.com;
        server backend3.example.com;
    }

    server {
        listen 80;
        server_name your_domain.com;

        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

缓存配置

http {
    proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

    server {
        location / {
            proxy_pass http://backend;
            proxy_cache my_cache;
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 404 1m;
            add_header X-Proxy-Cache $upstream_cache_status;
        }
    }
}

步骤 4: 性能调优

  1. 调整 Worker 进程数: 根据服务器的 CPU 核心数,调整 worker_processes 配置项,提高性能。
worker_processes auto;
  1. 文件描述符限制: 增加系统文件描述符限制,编辑 /etc/security/limits.conf
nginx soft nofile 65536
nginx hard nofile 65536
  1. 启用 Keepalive: 在 http 配置块中启用 Keepalive,提高连接的重用率。
http {
    ...
    keepalive_timeout 65;
    ...
}
  1. 开启 Gzip 压缩: 启用 Gzip 压缩,减小传输数据量。
http {
    ...
    gzip on;
    gzip_comp_level 5;
    gzip_min_length 256;
    ...
}
  1. 调整缓冲区大小: 根据服务器内存大小,调整缓冲区大小。
http {
    ...
    client_body_buffer_size 10K;
    client_header_buffer_size 1k;
    ...
}
  1. 启用 FastCGI 缓存: 对于 FastCGI,启用缓存提高性能。
http {
    ...
    fastcgi_cache_path /path/to/fastcgi/cache levels=1:2 keys_zone=my_fastcgi_cache:10m max_size=10g inactive=60m use_temp_path=off;
    ...
}

通过以上调优步骤,你将使 Nginx 在高负载环境下更加高效。根据实际服务器资源和需求,适度调整配置,确保系统的稳定性和性能。