搭建一个静态资源服务器

在这里我想以一个图片目录作为图片服务的根目录,搭建一个图片服务器# 下面是nginx的配置文件

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    
    # 指定日志文件的内容格式
    log_format  img_store  '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" '  '"$http_user_agent" "$http_x_forwarded_for"';
    
    sendfile        on;

    keepalive_timeout  65;

    gzip  on;   # * 开启gz压缩
    gzip_min_length 20k; #表示小于20K的文件就不进行压缩,节省CPU资源
    gzip_comp_level 2;      #压缩强度
    gzip_types image/jpeg image/gif image/png;   #指定要压缩的文件类型,不在指定中的文件类型不压缩,像tar.gz文件,zip文件这种就没有必要压缩

    server {
        listen       8080;
        server_name  localhost;
        
        # 指定日志文件的位置
        access_log  logs/access.log  img_store;     #日志文件
        
        error_page   500 502 503 504  /50x.html;
        
        location = /50x.html {
            root   html;
        }
        
        # * 这里是搭建图片服务器新增的配置
        location / {
            alias /tmp/img_store/;  # 结尾的/不能去掉,否则是找不到的
            autoindex on;
            set $limit_rate 50k;
        }
    }

}

server {...}
 使用server表示创建一个服务,代码块中是具体的服务的设置。
 每个服务都要监听一个端口。
 在nginx.conf中可以写多个 server 代码块使nginx创建多个服务。上面增加了如下配置:
 location / {
     alias /tmp/img_store/;
     autoindex on;
     set $limit_rate 50k;
 }这里指定了url中 "服务器ip/" 这个url路径指向我的主机的 /tmp/img_store/这个目录。使用alias和root都可以但是两者有些不同。
autoindex on;  表示允许浏览者查看目录结构
set $limit_rate 50k;  限制访问速度为最多每秒传输50K的内容;这个设置是为了防止用户访问大文件时速度太快而占用服务器有限的带宽。
gzip  on; 开启gz压缩,开启前后在浏览器用F12查看加载的静态资源的大小明显变小。
gzip_min_length 20k; #表示小于20K的文件就不进行压缩,节省CPU资源
     
 gzip_comp_level 2;      #压缩强度gzip_types image/jpeg image/gif image/png   #指定要压缩的文件类型,不在指定中的文件类型不压缩,像tar.gz文件,zip文件这种就没有必要压缩
有什么类型可以查看 nginx 配置文件目录下的 mime.types;
# log_format 用于指定日志文件的内容格式
 log_format  img_store        
 '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" '  '"$http_user_agent" "$http_x_forwarded_for"';其中 img_store 是一个名字可以随便取
 后面的内容是每一行日志的具体内容        
 # access_log 用于指定日志文件的位置
 access_log  logs/access.log  img_store;     #日志文件第二参是位置,可以使相对路径或绝对路径,这里写的是相对位置
 第三参是名字,即之前log_format设置的名字 PS:
 如果在listen 8080;的端口号前添加IP,那么就只有这个ip能访问我的静态服务器。例如 listen 127.0.0.1:8080;
 那么就只有本机访问我的8080端口的静态资源服务器能访问到。上面写 alias /tmp/img_store/ 是对的
 写 alias /tmp/img_store  是错的。
 如果写 root /tmp/img_store 或者 root /tmp/img_store/都是对的