nginx ส่งต่อไปยังพอร์ต apache บางพอร์ตโดยใช้คุกกี้

คำชี้แจงปัญหา: ฉันมีเว็บไซต์ของฉันสองเวอร์ชัน (LAMP) และต้องเรียกใช้ทั้งสองเวอร์ชันพร้อมกัน กล่าวคือ ทั้งสองเวอร์ชันจะต้องแสดงต่อผู้ใช้ตามคุกกี้บางตัว

เว็บเซิร์ฟเวอร์: nginx ระดับแรก, apache ระดับที่สอง

โซลูชันที่ฉันคิดไว้: คำขอจะไปถึง nginx ในระดับแรกและ nginx บนพื้นฐานของคุกกี้จะตัดสินใจว่าจะต้องส่งต่อพอร์ต apache ใด และบนพื้นฐานของพอร์ต โฮสต์เสมือนที่แมปไว้ จะถูกดำเนินการ

การกำหนดค่า nginx: ฉันจะกำหนดค่า nginx เหมือนกับคำขอจะถูกส่งต่อไปยังพอร์ต apache บางพอร์ตบนพื้นฐานของคุกกี้

การกำหนดค่า apache: จะสร้างโฮสต์เสมือนสองโฮสต์ที่มีรูทเว็บต่างกัน ตอนนี้ฉันต้องการกำหนดค่า apache เช่น โฮสต์เสมือนทั้งสองของฉันจะทำงานบนพอร์ตที่ต่างกัน

วิธีแก้ปัญหาข้างต้นเป็นไปได้หรือไม่ ถ้าใช่ ฉันจะกำหนดค่า nginx ของฉันโดยใช้คุกกี้ซึ่งจะถูกส่งต่อไปยังพอร์ต apache บางพอร์ตได้อย่างไร โซลูชันอื่นใดที่สามารถช่วยฉันดูแลรักษาเว็บไซต์สองเวอร์ชันที่แตกต่างกันได้


person Tanu Gupta    schedule 09.09.2014    source แหล่งที่มา


คำตอบ (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;
        }
    }
}

การกำหนดค่าอาปาเช่:

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