什么是动静分离不解释了,网上说的很清楚,这里只说配置
server {listen 82;listen [::]:82;#root /var/www/web/index;#index index.html;server_name localhost;location / {proxy_pass http://192.168.xxx.xxx:8080;#try_files $uri $uri/ =404;}location /css {root html;index index.html index.htm;}location /js {root html;index index.html index.htm;}location /img {root html;index index.html index.htm;}
}
首先修改proxy_pass,改为02虚拟机的tomcat地址端口,然后设置location,很好理解,访问css就去html目录下的css目录中查找,js和img同理。
反正静态文件是不变的,经过nginx从tomcat去取,取完了返回给nginx,再给用户呈现,还不如直接把静态放到nginx,别经手tomcat,因为tomcat是处理动态请求的服务器。因此就做到了动静分离。
可以看到上面js、css、img每人一个location,有些冗余,这里可以使用正则的方法
server {listen 82;listen [::]:82;#root /var/www/web/index;#index index.html;server_name localhost;location / {proxy_pass http://192.168.xxx.xxx:8080;#try_files $uri $uri/ =404;}location ~*/(js|img|css) {root html;index index.html index.htm;}
}
~表示开始正则。

server {listen 82;listen [::]:82;#root /var/www/web/index;#index index.html;server_name localhost;location / {proxy_pass http://192.168.xxx.xxx:8080/demo/views/login.html;#try_files $uri $uri/ =404;}location ~*/(js|img|css) {root /var/www/web ;index index.html index.htm;}
}
我发现,来自js、css、img这几个文件夹的静态文件确实可以获取到,但是来自layui、assembly等文件夹的静态文件获取不到。。

于是我修改配置文件:
server {listen 82;listen [::]:82;#root /var/www/web/index;#index index.html;server_name localhost;location / {proxy_pass http://192.168.xxx.xxx:8080/demo/views/login.html;#try_files $uri $uri/ =404;}location ~*/(js|img|css|layui|assembly) {root /var/www/web ;index index.html index.htm;}
}
其实就是匹配规则里添加了这几个文件夹的名字js|img|css|layui|assembly。我之前以为这里的匹配规则匹配的是文件类型,现在才知道,匹配的是路径。。
于是就好了:

上一篇:誉开头的成语接龙