最近我开始使用NGINX,我发现我们可以将它用于反向代理,从自身提供静态内容,这可以减少加载时间。我在我的本地机器上有一个Tomcat / JBoss服务器,我想把NGINX放在它前面,这样静态内容将由NGINX提供,并由Tomcat / JBoss完成。我的Tomcat / JBoss应用程序在http://localhost:8081/Test
上运行,我的NGINX配置工作正常,但无法加载css/js/jpg
文件。这是我的战争结构无处静态内容
Test.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)的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/;
}
答案 0 :(得分:27)
您可以使用regexp:
添加位置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/;
}
}
答案 1 :(得分:3)
尝试
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
您将看到测试时间大幅减少。
答案 2 :(得分:0)
这对我有用:
location /static {
alias /usr/src/app/project/static;
}