0

APIにバージョン管理ロジックを追加したくありません。nginx.confでワイルドカードサブドメインと正規表現を使用してサブドメイン部分を決定すると、リクエストを特定のディレクトリにルーティングできます。構成は次のとおりです。

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;
        }

}

質問:そのようなテクニックの欠点はありますか?

4

1 に答える 1

0

私はより良い方法を見つけました-server_nameの名前付きキャプチャ:

server {

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

}

これは次の理由で優れた方法です。

  1. IfIsEvil
  2. それははるかにきれいです
于 2012-11-27T10:11:38.737 に答える