Php nginx基于cookie转发到某个apache端口

Php nginx基于cookie转发到某个apache端口,php,apache,cookies,nginx,webserver,Php,Apache,Cookies,Nginx,Webserver,问题陈述:我有两个版本的网站(LAMP),必须同时运行两个版本。i、 e.两个版本都必须根据特定cookie向用户显示 web服务器:nginx第一级,apache第二级 我认为的解决方案:请求将在一级到达nginx,nginx将根据cookie决定转发哪个apache端口,并根据端口执行映射虚拟主机 nginx配置:我将配置类似nginx的请求,该请求将在cookie的基础上转发到特定的apache端口 apache配置:将创建两个具有不同web根的虚拟主机。现在我想配置apache,比如我的

问题陈述:我有两个版本的网站(LAMP),必须同时运行两个版本。i、 e.两个版本都必须根据特定cookie向用户显示

web服务器:nginx第一级,apache第二级

我认为的解决方案:请求将在一级到达nginx,nginx将根据cookie决定转发哪个apache端口,并根据端口执行映射虚拟主机

nginx配置:我将配置类似nginx的请求,该请求将在cookie的基础上转发到特定的apache端口

apache配置:将创建两个具有不同web根的虚拟主机。现在我想配置apache,比如我的两个虚拟主机将在不同的端口上运行

上述解决方案可行吗?如果可行,那么如何在将转发到特定apache端口的cookie的基础上配置我的nginx?是否有其他解决方案可以帮助我维护两个不同版本的网站?

我成功地做到了

nginx配置:

 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>
apache配置:

 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>
听6060
听着
DocumentRoot/var/www/ver1/
ServerName example.com
DocumentRoot/var/www/ver2/
ServerName example.com