Nginx——Nginx主要应用之静态代理

Posted 张起灵-小哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx——Nginx主要应用之静态代理相关的知识,希望对你有一定的参考价值。

1.静态代理

把所有静态资源的访问改为访问nginx,而不是访问tomcat,这种方式叫静态代理。因为nginx更擅长于静态资源的处理,性能更好,效率更高。

所以在实际应用中,我们将静态资源比如图片、css、html、js等交给nginx处理,而不是由tomcat处理。

1.1 实现方式1(不推荐)

例如:当访问静态资源,则从linux服务器/opt/static目录下获取(举例)

location ~ .*\\.(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid

|doc|ppt|pdf|xls|mp3|wma)$ {

             root /opt/static;

}

说明

  • ~ 表示正则匹配,也就是说后面的内容可以是正则表达式匹配
  • 第一个点 . 表示任意字符
  • *表示一个或多个字符
  • \\. 是转移字符,是后面这个点的转移字符
  • | 表示或者
  • $ 表示结尾
  • 整个配置表示以 .后面括号里面的这些后缀结尾的文件都由nginx处理

    放置静态资源的目录,要注意一下目录权限问题,如果权限不足,给目录赋予权限;

    否则会出现403错误 chmod 755

1.2 实现方式2(推荐)

例如:当访问静态资源,则从linux服务器/opt/static目录下获取(举例)

location ~ .*/(css|js|img|images) {

             root   /opt/static;

}

xxx/css

xxx/js

xxx/img

xxx/images

我们将静态资源放入 /opt/static 目录下,然后用户访问时由nginx返回这些静态资源


2.实现步骤

首先,修改nginx.conf文件,在location中配置对静态资源的拦截,如果是静态资源,就交给nginx处理,使拦截静态文件目录的方式。

  可以实现准备一个web项目,我这里是之前我自己写的一个myweb.war,这其中有一个静态资源image文件夹,我把myweb.war部署在了两个tomcat的webapps目录下,然后将image目录删掉。

因为我上面nginx.conf配置文件中的root定义为了 /opt/static,这里是说,在经过这个请求的时候,会拦截css、js、img、image、images这些静态资源文件。而这个myweb.war项目中,我的location设置为了 /myweb,所以这里完整的访问路径应该是 http:// 虚拟机ip /myweb (这里的虚拟机ip=root=/opt/static,最后跟上的就是location后面定义的内容)。

这个时候,再次进入浏览器输入地址访问,就可以看到图片正常显示了。

 

以上是关于Nginx——Nginx主要应用之静态代理的主要内容,如果未能解决你的问题,请参考以下文章

Nginx——Nginx主要应用之动静分离

Nginx——Nginx主要应用之动静分离

nginx下根据ua来源判断是启用静态目录还是使用反向代理

Nginx 架构和基础原理

Nginx 架构和基础原理

Nginx 架构和基础原理