【发布时间】:2014-07-09 17:02:54
【问题描述】:
最近我开始使用 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) 配置文件
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/;
}
【问题讨论】:
-
添加一个更具体的位置
/Resources/指向绝对路径应该可以工作。 (你需要将它指向爆炸的战争文件夹) -
所以我应该在我的 NGINX 服务器目录中放置一个 Resources 文件夹?
-
实际上我的想法是将我所有的静态内容放在 NGINX 服务器目录中,它们应该从这里提供,而不是从 JBoss/Tomcat 加载它们,但我不知道如何配置 NGINX 来加载所有这些静态内容来自它自己的服务器目录
-
这也应该可以。但是您需要阻止 proxy_pass 生效。定义更具体的位置。
-
@Thilo:您是否有任何示例 conf 文件,您这样做是为了在 NGINX 目录中查找静态内容并将所有内容都放在 JBoss 目录中???
标签: css windows tomcat nginx jboss