Я запускаю сервер Ubuntu 10.04 nginx с обратным прокси-сервером для apache (для запуска мониторинга munin).
Это отрывок из моего файла сайта Apache по умолчанию:
<VirtualHost *:8090>
ServerAdmin webmaster@localhost
DocumentRoot /var/cache/munin/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
И отрывок из моей example.com Файл конфигурации nginx:
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 указывает на apache через порт 8090, а apache обслуживает веб-каталог munin. Отлично работает.
Но что, если я захочу добавить еще один домен, скажем example.org? У меня был бы другой файл конфигурации nginx, но как бы сделать apache DocumentRoot
что-то другое? Поскольку запросы поступают в apache из nginx через порт localhost 8090, как apache может определить, с какого сайта поступает запрос и с какого? DocumentRoot
/ конфигурация для обслуживания?
Я предполагаю, что мне придется использовать заголовки, установленные nginx ($host;
или $proxy_add_x_forwarded_for;
переменные?) в apache как-то ...
Я запускаю несколько доменов в одном файле 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
<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>