Nginx 静态资源转发配置

时间:2024-04-08 10:35:18

 

1.修改nginx.conf配置文件


user  nobody;# 工作进程的属主
worker_processes  4;#推荐worker数为cpu核数,避免cpu不必要的上下文切换

error_log   /usr/local/nginx/logs/error.log;
#error_log  /usr/local/nginx/logs/error.log  notice;
#error_log  /usr/local/nginx/logs/error.log  info;

#pid         /usr/local/nginx/logs/nginx.pid;


events {
    use epoll;#Linux 下性能最好的 event 模式,macOS下无法启用此模式!
    #表示每个worker进程所能建立连接的最大值
    #一个nginx最大的连接数max=worker_connections*worker_processes;
    #对于http请求本地资源最大并发数量为max
    #如果http作为反向代理,最大并发数为max/2。因为每个并发会建立与客户端的连接和与后端服务的连接,会占用两个连接。
    worker_connections  2048;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log	   /usr/local/nginx/logs/access.log  main;# 日志文件名

    #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,
    #必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.
    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
	
    #开启gzip压缩
    gzip  on;
    gzip_min_length 1k;
    gzip_buffers 4 8k;
    gzip_http_version 1.1;
    gzip_types text/plain application/x-javascript text/css application/xml;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
	
	    location / {
            root   html;
            index  index.html index.htm;
        }

        location ~^/(images|image|javascript|js|css|static|json|staticImage)/ {
            root   /usr/mmtStatic;
            access_log  off;
	    expires     3000d;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
       
    }

}

通过在server监控的 80 端口下新增一个 location 来指定静态文件路径.location允许根据url进行不同的配置.

  • “~” 匹配时区分大小写
  • “~*” 匹配时不区分大小写
  • “=” 精确匹配字符和字符串“^~”  
  • “^~” 例如: ^~ /images/ 匹配到任何以images开头的,便停止搜索。

   location ~^/(imgaes|image|js)/ {

    请求文件的根目录  /usr/mmtStatic;

    过期时间 expire 3000天;   

 }

这里的 location 匹配以images等开头的路径

    如果路径不存在,会提示404

    如果路径存在,则返回相关文件

 

example:

1.在浏览器中输入 http://172.16.20.83/json/login.json

实际在linux中,根据上面的配置文件,会到 /usr/mmtStatic/json 下去寻找login.json

在linux中目录如下:mmtStatic下面有json目录,在json目录中有login.json文件

Nginx 静态资源转发配置

因此浏览器会显示login.json中的相关内容,显示如下:

Nginx 静态资源转发配置

2.若修改为login1.json,则返回404页面