<![CDATA[Latest posts for the topic "Làm Reverse Proxy với apache 2"]]> /hvaonline/posts/list/24.html JForum - http://www.jforum.net Làm Reverse Proxy với apache 2 /hvaonline/posts/list/100.html, giới thiệu qua về reverse proxy chứ chưa thấy nói về cấu hình. Nay tớ xin mạo muội viết tiếp phần 2, có gì sai sót xin các bạn chỉ giáo. Cấu hình cơ bản Đầu tiên, các bạn cần đưa chỉ dẫn "ProxyRequests Off" vào để tránh kẻ khác lợi dụng thành forward proxy. Chúng ta sẽ cấu hình dựa trên một mô hình đơn giản: Server sẽ luân chuyển các request đến các back-and server dựa theo đường dẫn có trong Header của request:
Ví dụ khi một user truy cập đến www.mcslp.com/marketing thì reverse proxy sẽ lấy nội dung của marketing.mcslp.com để cung cấp cho client. Trong phần cấu hình cho reverse proxy ta có chỉ dẫn sau: Code:
ProxyPass [path] !|url
Cấu hình cho cả 3 back-end server như sau: Code:
ProxyPass /marketing http://marketing.mcslp.com
ProxyPass /accounts http://finance.mcslp.com
ProxyPass /sales http://sales.mcslp.com
Và như vậy, www.mcslp.com/marketing/admin/index.html sẽ được lấy từ marketing.mcslp.com/admin/index.html . Nếu bạn không muốn reverse proxy luân chuyển các request đến một thư mục con trên back-end server thì bạn có thể dùng dấu chấm than (!) thay cho url. Ví dụ: Code:
ProxyPass /marketing/account !
ProxyPass /marketing http://marketing.mcslp.com
Sẽ reverse proxy /marketing nhưng request đến /marketing/account không được luân chuyển đến http://marketing.mcslp.com/account ProxyPassReverse Chỉ dẫn ProxyPass có một nhược điểm, đó là nó không can thiệp vào header của reponse data nên nếu trong header có các trường như Location, URI hay Content-Location thì client sẽ dễ dàng biết được nguồn gốc thực sự của trang web đó. Ví dụ như bạn có một trang http://marketing.mcslp.com/wwwect.php có nội dung như sau: Code:
<?
header(“Location: http://marketing.mcslp.com/admin/");
?>
Thì trong header của client ta sẽ thấy trường Code:
Location: http://marketing.mcslp.com/admin/
Chứ không phải Code:
Location: http://www.mcslp.com/marketing/admin/
như mong muốn. Để khắc phục ta thêm vào chỉ dẫn ProxyPassReverse, các tham số giống hệt ProxyPass: Code:
ProxyPass /marketing http://marketing.mcslp.com
ProxyPassReverse /marketing http://marketing.mcslp.com
Tác dụng của ProxyPassReverse là rewrite lại header của reponse data và với ví dụ trên, giá trị của trường location sẽ thực sự là http://www.mcslp.com/marketing/admin/ Cấu hình hoàn chỉnh: Đây chỉ là cấu hình mẫu của reverse proxy, các bạn còn phải thiết lập cho back-end server mà tôi không đề cập ở đây (xem thêm về VirtualHost trên trang chủ của apache) Code:
<VirtualHost *:80>
    ServerName mcslp.com
    Alias www.mcslp.com
    DocumentRoot /var/www/mcslp.com

    ProxyRequests Off
    ProxyPass /marketing http://marketing.mcslp.com
    ProxyPass /accounts http://finance.mcslp.com
    ProxyPass /sales http://sales.mcslp.com
    ProxyPassReverse /marketing http://marketing.mcslp.com
    ProxyPassReverse /accounts http://finance.mcslp.com
    ProxyPassReverse /sales http://sales.mcslp.com
</VirtualHost>
Mod Proxy còn rất nhiều tính năng hay, các bạn có thể tham khảo http://httpd.apache.org/docs/2.0/mod/mod_proxy.html ]]>
/hvaonline/posts/list/20326.html#120712 /hvaonline/posts/list/20326.html#120712 GMT
Re: Làm Reverse Proxy với apache 2 Code:
<Proxy *>
                AddDefaultCharset off
                #Order deny,allow
                #Deny from all
                #Allow from .example.com
         </Proxy>
sau đó khởi động lại apache]]>
/hvaonline/posts/list/20326.html#120718 /hvaonline/posts/list/20326.html#120718 GMT
Re: Làm Reverse Proxy với apache 2

]]>
/hvaonline/posts/list/20326.html#121281 /hvaonline/posts/list/20326.html#121281 GMT
Re: Làm Reverse Proxy với apache 2

Golden Autumn wrote:
Nếu đã "chơi" Reverse Proxy thì sao không dùng Squid mà lại dùng Apache nhĩ , dù sao Squid cũng là phần mềm internet proxy caching cực tốt mà :)  
Một ứng dụng "chơi" Reverse Proxy với Apache là làm Load-Balancer (mod_proxy_balancer, Apache version 2.2.x trở lên).]]>
/hvaonline/posts/list/20326.html#121357 /hvaonline/posts/list/20326.html#121357 GMT
Re: Làm Reverse Proxy với apache 2

Golden Autumn wrote:
Hello bro, Trước hết cám ơn bro đóng góp bài viết có giá trị cho HVA Nếu đã "chơi" Reverse Proxy thì sao không dùng Squid mà lại dùng Apache nhĩ , dù sao Squid cũng là phần mềm internet proxy caching cực tốt mà :)  
Em mới dùng squid làm forward proxy chứ chưa thử làm reverse. Để mai mốt tìm hiểu sau :)]]>
/hvaonline/posts/list/20326.html#121425 /hvaonline/posts/list/20326.html#121425 GMT
Re: Làm Reverse Proxy với apache 2 /hvaonline/posts/list/20326.html#121453 /hvaonline/posts/list/20326.html#121453 GMT Re: Làm Reverse Proxy với apache 2 http://varnish.projects.linpro.no/ đâu :D ]]> /hvaonline/posts/list/20326.html#121756 /hvaonline/posts/list/20326.html#121756 GMT