2012-08-14 24 views
0

我不想向API添加任何版本控制邏輯。 如果我在nginx.conf中使用通配符子域和正則表達式來確定子域部分,我可以將請求路由到特定目錄。這裏是配置:使用通配符子域的API版本控制

server { 

     listen 80; 
     server_name .api.domain.com; 

     set $version $host; 

     if ($version ~ "^(.+).api.domain.com") { 
       set $version $1; 
     } 

     access_log /var/log/nginx/$version-access.log; 
     error_log /var/log/nginx/$version-error.log info; 

     location/{ 
       root /opt/webapps/app_$version/www/; 
       index index.php; 
     } 

} 

問:這種技術有什麼缺點嗎?

+0

似乎是合理的對我來說 – cobaco 2012-08-15 20:42:07

回答

0

我找到更好的辦法 - 在服務器名稱命名的捕獲:

server { 

    server_name ~^(?<version>.+).test$; 
    root /your-path/$version.test; 

} 

這是方法比較好,因爲:

  1. IfIsEvil
  2. 這是更清潔