微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

原文地址:https://www.jb51.cc/nginx/434439.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐