2014-02-17 82 views
6

我想为我的Play使用Nginx的server/assets文件夹!应用。我想:PlayFramework静态文件的nginx配置

  • 代理大多数文件来玩!
  • 点/资产

我使用以下配置的本地文件夹,但它不工作:

worker_processes 1; 

error_log logs/error.log; 

events { 
    worker_connections 1024; 
} 

http { 
    include  mime.types; 
    default_type application/octet-stream; 

    upstream play_app { 
     server 0.0.0.0:9000; 
    } 

    server { 
     listen  80; 

     location/{ 
      proxy_pass http://play_app; 
     } 
    } 
} 

另外,如果我得到这个工作,我就能写Nginx /资源文件夹通过Play.getFile("/assets/images")播放?

回答

6

假设播放应用程序在同一台计算机上运行Nginx的 - 而9000

upstream play_app { 
    server 127.0.0.1:9000; 
} 

server { 
    listen 80; 
    location/{ 
    proxy_pass http://play_app; 
    } 
} 

这将路线通过nginx的从端口80上的所有请求监听端口 - 该游戏应用程序在同一台机器上端口9000.

如果您希望NGinx为您的本地资产服务 - 在捕获所有规则之前添加第二个位置。

server { 
    listen 80; 
    location /assets { 
    root /var/www; 
    } 
    location/{ 
    proxy_pass http://play_app; 
    } 
} 
+0

如果你想添加一个本地资产目录 - 只需添加另一个位置到服务器 – BillyBigPotatoes

+0

谢谢你的工作。但由于某种原因,在这个配置中,服务器正在寻找var/www/assets/assets/test.txt因此,如果我将根改为/ var/www,它可以工作,但我不想要相对路径。你知道缺少的东西吗? –

+2

所以这工作:重写^/assets(。*)/ $ 1 break; –