如何让NGINX提供像.js,.css,.html这样的静态内容?

最近我开始使用NGINX,我发现我们可以使用它作为反向代理,从本身提供静态内容,这可以减less加载时间。 我的本地机器上有一个Tomcat / JBoss服务器,我想把NGINX放在它的前面,这样静态内容将从NGINX提供,全部由Tomcat / JBoss来完成。 我的Tomcat / JBoss应用程序运行在http://localhost:8081/Test我的NGINXconfiguration工作正常,但无法加载css/js/jpg文件。 这是我的战争结局wehere静态内容是

Test.war

 TEST | |--->Resources | |------->CSS | | |----> style.css | | | |-------->Images | |----> a.jpg | |----> b.jpg | |--->WEB-INF | |----->Web.xml | |----->spring-servlet.xml | |--->JSP |---->login.jsp 

我认为问题是因为绝对path,所以我应该复制资源文件夹并将其放在NGINX的某个文件夹中,并configuration我的NGINX从自己的目录中select文件,而不是去Tomcat / JBoss? 我是新的,所以我没有任何想法做这个任何人都可以帮助我。 这是我的NGINX(窗口)的conf文件

 server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://127.0.0.1:8081/Test/; } 

Solutions Collecting From Web of "如何让NGINX提供像.js,.css,.html这样的静态内容?"

您可以使用正则表达式添加位置

 server { listen 80; server_name localhost; location ~* \.(js|jpg|png|css)$ { root path/to/tomcat/document/root/Test/; expires 30d; } location / { proxy_pass http://127.0.0.1:8081/Test/; } } 

尝试

 server { listen 80; server_name localhost; location ~* \.(css|js|gif|jpe?g|png)$ { expires 168h; } location / { proxy_pass http://127.0.0.1:8081/Test/; } } 

如何测试

在CLI中运行ab -c 20 -n 1000 https://your-site/any-file

你会看到测试的时间急剧减少。