nginx перенаправляет на определенный порт apache на основе cookie

Постановка проблемы. У меня есть две версии моего веб-сайта (LAMP), и мне нужно запускать обе версии одновременно. то есть обе версии должны отображаться пользователям на основе определенного файла cookie.

веб-серверы: первый уровень nginx, второй уровень apache.

Решение, которое я придумал: запрос дойдет до nginx на первом уровне, и nginx на основе файла cookie решит, на какой порт apache его нужно перенаправить, и на основе порта сопоставленный виртуальный хост будет казнен.

Конфигурация nginx: я настрою nginx, так как запрос будет перенаправлен на определенный порт apache на основе cookie.

Конфигурация apache: создаст два виртуальных хоста с разными веб-корнями. Теперь я хочу настроить apache, например, два моих виртуальных хоста будут работать на разных портах.

Выполнимо ли приведенное выше решение? Если да, то как мне настроить nginx на основе файла cookie, который будет перенаправлен на определенный порт apache? Любое другое решение, которое может помочь мне поддерживать две разные версии веб-сайта?


person Tanu Gupta    schedule 09.09.2014    source источник


Ответы (1)


Мне это удалось.

конфигурация нгинкс:

 server {
    listen       80;
    server_name example.com;
    location /
    {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-FORWARDED_PROTO https;
        if ($http_cookie ~ 'ver=1' ) {
            proxy_pass   http://127.0.0.1:6060;
        }
        if ($http_cookie ~ 'ver=2' ) {
            proxy_pass   http://127.0.0.1:7070;
        }
    }
}

конфигурация апача:

Listen 6060
Listen 7070

    <VirtualHost *:6060>
        DocumentRoot /var/www/ver1/
        ServerName example.com
    </VirtualHost>
    <VirtualHost *:7070>
        DocumentRoot /var/www/ver2/
        ServerName example.com
    </VirtualHost>
person Tanu Gupta    schedule 12.09.2014