2

nginx の下に複数の Drupal サイト (最大 12) があり、それらをパスで提供する必要があります。

http://example.com/site1
http://example.com/site2

これを行うには2つの方法があります。

1) ダミーのサブドメインを作成して、サイトごとに 1 つのサーバー ブロックを使用できるようにします。注: 以下の構成では、関連する行のみを表示しています。

server {
    listen 80;
    server_name site1.localhost;
    root /var/www/site1;
    location ~ \.php$ {
        ...
        fastcgi_pass 127.0.0.1:9000;
    }
}
server {
    listen 80;
    server_name site2.localhost;
    root /var/www/site2;
    location ~ \.php$ {
        ...
        fastcgi_pass 127.0.0.1:9000;
    }
}
server {
    listen 80;
    server_name _;  # _ is used as a catch all domain
    location /site1/ {
        proxy_pass site1.localhost;
    }
    location /site2/ {
        proxy_pass site2.localhost;
    }
}

上記では、/etc/hosts ファイルに各サイトのエントリを追加する必要があります。例: 127.0.0.1 site1.localhost;

DNS エントリをグローバルに編集する必要はありません。私たちの環境 (それぞれが複数のサイトを持ち、行き来する複数のクラウド サーバー) で管理するのは頭痛の種になります。

2) 各サイトのロケーション ブロックで 1 つのサーバー ブロックを使用します。

server {
    listen 80;
    server_name _; # _ is used as a catch all domain
    location /site1/ {
        root /var/www/site1;
        location ~ \.php$ {
            ...
            fastcgi_pass 127.0.0.1:9000;
        }
        ...
    }
    location /site2/ {
        root /var/www/site2;
        location ~ \.php$ {
            ...
            fastcgi_pass 127.0.0.1:9000;
        }
        ...
    }
}

ソリューション 2) は、nginx のスケーラビリティまたは効率に影響を与えますか? つまり、すべてに対して 1 つのサーバー ブロックを使用します。

一般的に使用するのに最適なソリューションは何ですか?

4

0 に答える 0