【发布时间】:2013-04-05 14:08:53
【问题描述】:
目标
使用 nginx 为每个应用程序使用不同的子目录设置多个 Play 2.1 应用程序。
在127.0.0.1:4000 上运行的App1 应该可以在127.0.0.1/dev 下访问
在127.0.0.1:5000 上运行的App2 应该可以在127.0.0.1/test 下访问
配置
nginx.conf
worker_processes 1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
upstream app1 {
server 127.0.0.1:4000;
}
upstream app2 {
server 127.0.0.1:5000;
}
server {
listen 80;
server_name localhost;
location /dev {
rewrite /(.*) /$1 break;
proxy_pass http://app1;
}
location /test {
rewrite /(.*) /$1 break;
proxy_pass http://app2;
}
}
}
App1 - application.conf
application.context=/dev
App2 - application.conf
application.context=/test
问题
使用此配置,我可以访问这两个应用程序,但只加载了 html 代码。未加载所有静态文件(css、js、图像)。
我认为这是缓存问题。我尝试过使用不同的 nginx 参数,但没有运气。如果我第一次请求该站点,浏览器会以状态200 响应(对于css 和js 文件,例如127.0.0.1/dev/assets/stylesheets/main.css)但没有内容-Content-Length: 0。下次它回复304,仍然没有内容。
我不确定这是nginx 还是Play 2.1 配置问题。
我将不胜感激。
【问题讨论】:
标签: nginx playframework reverse-proxy playframework-2.1