Luk*_* R. 6 reverse-proxy nginx playframework playframework-2.1
使用nginx为每个应用程序使用不同的子目录设置多个Play 2.1应用程序.
运行的App1 127.0.0.1:4000应该可以在127.0.0.1/dev
运行的App2 下访问,127.0.0.1:5000应该可以访问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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
App1 - application.conf
application.context=/dev
Run Code Online (Sandbox Code Playgroud)
App2 - application.conf
application.context=/test
Run Code Online (Sandbox Code Playgroud)
使用此配置,我可以访问这两个应用程序,但只加载了html代码.未加载所有静态文件(css,js,images).
我认为这是缓存问题.我试过不同的nginx参数,没有运气.如果我第一次请求该站点,浏览器会响应(例如,for 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.locapplication.context
更重要的是,使用本地域与最终的生产环境更相似,因此更容易调试一些依赖于 url 的东西,例如 ie。饼干。