Nginx反向代理缓存服务器配置详细说明

  1. 安装Nginx
    确保已安装Nginx,并支持缓存模块。

  2. 配置缓存路径
    在Nginx配置文件中定义缓存路径和缓存参数:

    http {
        proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
    }
    • proxy_cache_path:缓存存储路径。

    • levels:缓存目录层级。

    • keys_zone:定义缓存区域名称和大小。

    • max_size:缓存最大大小。

    • inactive:缓存未访问时的保留时间。

    • use_temp_path:是否使用临时路径。

  3. 配置反向代理和缓存
    server块中配置反向代理和缓存:

    server {
        listen 80;
        server_name example.com;
    
        location / {
            proxy_cache my_cache;
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 404 1m;
            proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
            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_cache:指定缓存区域。

    • proxy_cache_valid:定义不同响应码的缓存时间。

    • proxy_cache_use_stale:在特定情况下使用过期缓存。

    • proxy_pass:反向代理到后端服务器。

    • proxy_set_header:设置请求头。

  4. 重启Nginx
    保存配置文件并重启Nginx:

    sudo systemctl restart nginx

案例

假设后端服务器为192.168.1.100,域名example.com,配置如下:

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

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_cache my_cache;
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid 404 1m;
            proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
            proxy_pass http://192.168.1.100;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

此配置将example.com的请求反向代理到192.168.1.100,并缓存响应内容。

本篇文章内容来源于:Nginx反向代理缓存服务器配置详细说明以及案例