

**Q1.[このリンク先にある「おまけ１：NginxでApacheのバーチャルドキュメントルートもどき」](https://ktrysmt.github.io/blog/replace-
apache-to-nginx/)は、何をやっているのでしょうか？**  
・サブドメインを変数にして動的処理しているようにみえるのですが、内容がよく分かりません

* * *

**Q2.Nginxのバーチャルホスト設定で、下記のようなことを動的に出来ないでしょうか？**  
・決め打ち

[code]

    http://サブドメイン.ドメイン
    ・ドキュメントルート "/var/www/ドメイン/サブドメイン.ドメイン"
    
[/code]

・具体例

[code]

    http://a.example.net
    ・ドキュメントルート "/var/www/example.net/a.example.net"
    
    http://b.example.net
    ・ドキュメントルート "/var/www/example.net/b.example.net"
    
    http://a.example.com
    ・ドキュメントルート "/var/www/example.com/a.example.com"
    
    http://b.example.com
    ・ドキュメントルート "/var/www/example.com/b.example.com"
    
[/code]

* * *

**質問背景**  
・ 「/etc/nginx/conf.d/*.conf」に一つ一つ追加していけば良いと思うのですが、なるべく効率的に書きたい

**環境**  
・CentOS7  
・PHP-FPM


CC BY-SA 3.0
2018-02-07T02:25:40.040
41531
2018-11-12T00:06:59.403
7886
question
nginx
Nginxでバーチャルホストを動的設定したい

[code]

    server_name ~^(?<sub>.+)\.example\.(?<tld>.+)$;
    root        /var/www/example.$tld/$sub.example.$tld;
    
[/code]


CC BY-SA 3.0
2018-02-07T02:39:58.807
41532
2018-02-07T02:39:58.807
27313
41531
answer


A1: リクエストしてきたホスト example.com のサブドメイン名 `$subdomain`
を取得し、サブドメイン用のコンテンツディレクトリ(`/var/www/vhosts/$subdomain`)が無ければ example.com
にリダイレクト、サブドメイン用のコンテンツディレクトリがあればそのコンテンツを使用する。

A2: ご参考にされているサイトでは、具体例そのものの方法はできませんが、フォルダを用意すればホストごとのコンテンツディレクトリの動的変更は可能です。


CC BY-SA 4.0
2018-11-12T00:06:59.403
50225
2018-11-12T00:06:59.403
22888
41531
answer