2012-09-23 140 views
3
  • 我有我在本地測試和部署的EC2實例
  • 我使用本地 nginx的配置看起來一個web應用等爲
location /static/ {  alias /home/me/code/p/python/myapp/static/; 
    # if asset versioning is used 
    if ($query_string) { 
     expires max; 
    } 
}  location /templates/ {  alias /home/me/code/p/python/app/templates/; 
    # if asset versioning is used 
    if ($query_string) { 
     expires max; 
    } 
} 

在EC2實例中,唯一會改變的就是路徑,例如Nginx:如何爲nginx配置中的路徑提供變量?

/home/me/code/p/python/myapp/static//User/ubuntu/code/p/python/myapp/static/

  • 要做到這一點我改變配置看起來像

~/code/p/python/myapp/static/

但這並沒有工作,它顯示的路徑

/etc/nginx/~/code/p/python/myapp/static/

這是不正確的

問題 - 是否有可能包括在nginx的的c​​onf環境變量?

我想要什麼 - Nginx的構形,它可以讀取特定機器變量來創建路徑,這樣我就不必去改變它每臺機器和代碼可重用

謝謝

+0

,而不是改變你的生產服務器,如何在您的計算機上設置符號鏈接來匹配您的服務器?如果可能的話,保持路徑的好處很多 – troseman

回答

-1

兩種方式這樣做的:

  1. 正如上文所述,符號鏈接是使路徑上機相匹配,同時在一個地方保持代碼的一個非常好的途徑。一個符號鏈接基本上是一個別名;如果/ link是/ file的符號鏈接,當你詢問/ link時,你會得到/ file。

    ln -s /file /link 
    
  2. 使用include語句。在nginx中,你可以include variables.conf;。例如。

    nginx.conf:

    include variables.conf 
    
    ... 
    
    http { 
        listen $port; 
        ... 
    } 
    

    variables.conf:

    set $foo "Something"; 
    set $bar "Else"; 
    set $port 80;