web-dev-qa-db-ja.com

ApacheへのマルチサイトNginxリバースプロキシルーティング

私はUbuntu10.04 nginxサーバーを実行しており、Apacheへのリバースプロキシを使用しています(muninモニタリングを実行するため)。

これは私のデフォルトのApacheサイトファイルの抜粋です。

<VirtualHost *:8090>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/cache/munin/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

そして、私のexample.comnginx構成ファイルの抜粋:

location /stats {
    proxy_pass              http://127.0.0.1:8090/;
    proxy_redirect          off;
    proxy_set_header        Host            $Host;
    proxy_set_header        X-Real-IP       $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_buffers           32 4k;
}

example.com/statsにアクセスすると、nginxはポート8090を介してApacheをポイントし、ApacheはmuninWebディレクトリを提供します。それは素晴らしい働きをします。

ただし、別のドメインを追加したい場合は、example.org別のnginx構成ファイルがありますが、 ApacheのDocumentRootを他のものにするにはどうすればよいですか?リクエストはnginxからローカルホストポート8090を介してApacheに着信するため、Apacheはリクエストの発信元のサイトと、リクエストを処理するためのDocumentRoot/configurationをどのように判断できますか?

Nginxで設定されたヘッダーを使用する必要があると思います($Host;または$proxy_add_x_forwarded_for;変数?)Apacheではどういうわけか...

2
mr_schlomo

1つのnginx.confファイルで複数のドメインを実行しています。これを試して:

server {
    listen xxx.xxx.xxx.xxx:8090;
    server_name example.org;
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header Host $Host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    location / {
        proxy_pass http://127.0.0.1:8090;
    }
}

server {
    listen xxx.xxx.xxx.xxx:8090;
    server_name example.com;
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header Host $Host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    location / {
        proxy_pass http://127.0.0.1:8090;
    }
}

次に、Apacheに2つの仮想構成を追加します

<VirtualHost *:8090>
ServerName example.org
ServerAdmin webmaster@localhost

DocumentRoot /var/cache/munin/www
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
</VirtualHost>

<VirtualHost *:8090>
ServerName example.com
ServerAdmin webmaster@localhost

DocumentRoot /var/cache/munin/www2
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
</VirtualHost>
3
111110100