【问题标题】:Reverse proxy for a subdirectory with nginx and Play 2.1 apps带有 nginx 和 Play 2.1 应用程序的子目录的反向代理
【发布时间】: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 响应(对于cssjs 文件,例如127.0.0.1/dev/assets/stylesheets/main.css)但没有内容-Content-Length: 0。下次它回复304,仍然没有内容。

我不确定这是nginx 还是Play 2.1 配置问题。

我将不胜感激。

【问题讨论】:

    标签: nginx playframework reverse-proxy playframework-2.1


    【解决方案1】:

    使用http://test.loc/http://dev.loc 等本地,而不是依赖子文件夹。虽然application.context 应该工作我看到很多帖子抱怨他们不...

    更重要的是使用本地域更类似于最终的生产环境,所以调试一些依赖于url的东西更容易,比如ie。饼干。

    【讨论】:

    • 感谢这个想法,这当然是一个有趣的解决方案,但我想将它配置为用于生产的子文件夹。我可以看到 html 内容,因此“application.context”适用于控制器中定义的操作,但不适用于资产。正如我所说,我不确定是 nginx 还是播放问题。
    【解决方案2】:

    尽管这不能直接回答您的问题,但我通过传递 X-Script-Name 参数让它在 HAProxy 中工作:

    frontend  public
      bind *:80
      use_backend playapp if { path_beg /playapp }
    
    backend playapp
      acl is-ssl  dst_port 443
      reqadd X-Script-Name:\ /playapp
      reqadd X-Scheme:\ https  if is-ssl
      option forwardfor
      server playapp1 127.0.0.1:9000 check
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-21
      • 2021-05-15
      • 2021-05-22
      • 2018-02-09
      • 1970-01-01
      • 1970-01-01
      • 2016-03-31
      • 2019-12-22
      相关资源
      最近更新 更多