Nginx如何实现静态文件服务器?

Nginx可以作为高性能的静态文件服务器。主要的配置步骤如下:

  1. 设置server块的root指令指定网站根目录位置。
server {
    listen       80;
    server_name  static.example.com;
    root         /data/www;  # 网站根目录
}
  1. 匹配静态文件类型,设置expires参数配置文件过期时间。
location ~* ^.+\.(gif|jpg|jpeg|png|css|js|ico)$ {
    expires     30d;  # 过期时间30天
}
  1. 开启gzip压缩,加速文件传输。
gzip on;
gzip_static on;
gzip_types text/plain application/xml; 
  1. 使用try_files按照序列检查文件是否存在,返回首个找到的文件。
location / {
    try_files $uri $uri/ =404;  # 检查/$uri与$uri/index.html
}
  1. error_page自定义404页,让用户体验更友好。
error_page  404              /404.html;
location = /404.html {
    root   /data/www;
}
  1. 使用location指令构建规则匹配特定文件。
location ~* \.(gif|jpg|png)$ {  # 匹配gif/jpg/png格式文件
    expires 30d;
}

例如,完整server块配置:

server {
    listen       80;
    server_name  static.example.com;
    root         /data/www;  

    location ~* ^.+\.(gif|jpg|jpeg|png|css|js|ico)$ {
        expires     30d;  
    }

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

    error_page   404             /404.html;
    location = /404.html {
        root   /data/www;
    }

    gzip  on;
    gzip_static on;
    gzip_types text/plain application/xml;
}