目标
使用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,images).
我认为这是缓存问题.我试过不同的Nginx参数,没有运气.如果我第一次请求该站点,浏览器响应(对于css和js文件,例如127.0.0.1/dev/assets/stylesheets/main.css)状态为200但没有内容 – Content-Length:0.对于下一个时间它以304响应,仍然没有内容.
我不确定这是否是Nginx或Play 2.1配置问题.
我将不胜感激任何帮助.
最佳答案
使用http://test.loc/和http://dev.loc等本地域,而不是依赖于子文件夹.尽管application.context应该可行,但我看到很多帖子抱怨说他们不…
使用本地域更加类似于最终的生产环境,所以调试一些url依赖的东西就更容易了,比如ie.饼干.