最近我开始使用 NGINX,我发现我们可以将它用于反向代理,从自身提供静态内容,从而减少加载时间。我在我的本地机器上有一个 Tomcat/JBoss 服务器,我想把 NGINX 放在它前面,这样静态内容将从 NGINX 提供,剩下的全部由 Tomcat/JBoss 提供。我的 Tomcat/JBoss 应用程序正在 http://localhost:8081/Test
上运行,我的 NGINX 配置工作正常,但它无法加载 css/js/jpg
文件。这是我的 war 结构,静态内容是
测试战
TEST
|
|--->Resources
| |------->CSS
| | |----> style.css
| |
| |-------->Images
| |----> a.jpg
| |----> b.jpg
|
|--->WEB-INF
| |----->Web.xml
| |----->spring-servlet.xml
|
|--->JSP
|---->login.jsp
我认为问题是因为绝对路径,所以我应该复制资源文件夹并将其放在 NGINX 中的某个文件夹中,然后配置我的 NGINX 从它自己的目录中选择文件而不是转到 Tomcat/JBoss?我是新来的,所以我不知道该怎么做,任何人都可以帮助我。这是我的 NGINX(windows) 配置文件
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/;
}
最佳答案
您可以使用正则表达式添加位置:
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/;
}
}
关于css - 如何让 NGINX 提供 .js、.css、.html 等静态内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23776660/