2014-02-17 78 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; –