使用nginx和Play 2.1应用程序的子目录的反向代理

目标

使用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.饼干.

相关文章

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一...
本地项目配置 1 复制 luffy/settings/dev.py为prop.py 修改l...
nginx不仅可以隐藏版本信息,还支持自定义web服务器信息 先看...
一 、此次漏洞分析 1 nginx HTTP/2漏洞 [nginx-announce] ng...
###进入nginx 目录cd /usr/local/nginx###递归显示 2 级目录...
在cmd命令窗口输入下面命令进行查看 tasklist /fi "ima...