应无所住,而生其心
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

nginx处理静态资源

10446人阅读 2019/6/14 17:44 总访问:4812056 评论:1 收藏:0 手机
分类: 软件架构


如果我们使用了nginx反向代理后,直接去项目中请求我们的静态资源会比较慢,当然我们有条件使用cdn更好,没有

不使用cdn,也可以我们请求静态资源直接请求nginx就不转发一次了也可以提高一点访问的效率。


简单的配置文件:

    server {
        listen       8090 ;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {               #其他资源只能走转发即可
            root   html;
            index  index.html index.htm;
            proxy_pass  http://localhost;
        }

        location ~.*\.(js|css|jpg|png)?$  #监听静态资源的请求
	        {         
		        root C:/Users/Administrator/Desktop/nginx-1.12.2/nginx-1.12.2;#设置静态资源的存储位置
		        expires 1h;
	        }
    }

这里主要就是两个东西:

一个是接听静态资源的请求:

location ~.*\.(js|css|jpg|png)?$

一个就是请求的具体地址:

root C:/Users/Administrator/Desktop/nginx-1.12.2/nginx-1.12.2;#设置静态资源的存储位置


我们在nginx所在目录新建了一个content文件夹,然后你们放了几个简单的css,js

如果配置成功后,我们访问静态资源,就可以不需要转发一次了,直接就请求nginx下面的资源



当然配置一次可能访问会不成功,看日志,看日志!,nginx的日志是个好东西,一般都是路径错误什么的,

仔细检查一下就知道了。


比如我们把静态资源的路径配置成这样:就是一个/

location ~.*\.(js|css|jpg|png)?$  #监听静态资源的请求
	{         
		root /;#静态资源的路径
		expires 1h;
	}

然后我们在去访问资源就会访问不到:

日志就会发现是路径不对:

看路径就会知道它请求的地址是:C:/content/mystyle.css,但是我们真正的资源地址并不是整个,所以找不到就会报错了

,它认为/就是c盘了。


配置成相对路径的学习过程

 总感觉写绝对路径不好 ,nginx换了位置后就访问不到了,当然也许我们做分布式文件存储不会把到放到nginx的文件夹中去,但是还是可以尝试一下,nginx相对路径的配置方法


直接设置成root的尝试:

location ~.*\.(js|css|jpg|png)?$  #监听静态资源的请求
	{         
		root root;#静态资源的路径
		expires 1h;
	}

但是访问并不行找的路径是这个:  路径多了一个root出来

然后我就想,既然多了一个root出来,那我不写行不行,然后试了一下不行留空是不行的!

然后尝试了一下留一个空字符串就行了!

location ~.*\.(js|css|jpg|png)?$  #监听静态资源的请求
	{         
		root "";#静态资源的路径,留空字符串表示跟目录
		expires 1h;
	}

多思考对尝试实践中真理






欢迎加群讨论技术,群:677373950(满了,可以加,但通过不了),2群:656732739

评价