【问题标题】:nginx forward to certain apache port on the basis of cookienginx根据cookie转发到某个apache端口
【发布时间】:2014-09-09 10:04:18
【问题描述】:

问题说明:我的网站 (LAMP) 有两个版本,并且必须同时运行这两个版本。即两个版本都必须基于某些 cookie 显示给用户。

网络服务器:nginx 一级,apache 二级。

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

nginx配置:我会配置nginx之类的请求会根据cookie转发到某个apache端口。

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

上述方案可行吗? 如果可行,那我该如何根据cookie来配置我的nginx,该cookie将被转发到某个apache端口?还有其他解决方案可以帮助我维护网站的两个不同版本吗?

【问题讨论】:

    标签: php apache cookies nginx webserver


    【解决方案1】:

    我成功了。

    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;
            }
        }
    }
    

    apache配置:

    Listen 6060
    Listen 7070
    
        <VirtualHost *:6060>
            DocumentRoot /var/www/ver1/
            ServerName example.com
        </VirtualHost>
        <VirtualHost *:7070>
            DocumentRoot /var/www/ver2/
            ServerName example.com
        </VirtualHost>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 2019-05-23
      • 2017-07-18
      • 2012-02-29
      • 1970-01-01
      • 2018-08-16
      相关资源
      最近更新 更多