Tawkto là một phần mềm chat miễn phí phổ biến được nhiều website ở việt nam sử dụng. Tuy nhiên vì 1 số lý do liên quan tới phân giải DNS nên khi khách hàng truy cập website sử dụng tawkto đều không hiển thị.
Để khắc phục vấn đề này chúng ta có thể có nhiều phương án khác nhau như thay đổi phần mềm chat hoặc đơn giản là ngồi đợi Tawkto xử lý
Trong bài viết này sẽ hướng dẫn cấu hình Proxy để có thể khắc phục tạm thời sự cố này
Cấu hình Proxy cho domain chính cần thay thế, ví dụ là abc.onlinenhư sau
#PROXY-START/ <IfModule mod_proxy.c> ProxyRequests Off SSLProxyEngine on ProxyPassMatch ^/v1(/.*)?$ https://va.tawk.to/v1$1 ProxyPassReverse /v1 https://va.tawk.to/v1/ ProxyPass / https://embed.tawk.to/ ProxyPassReverse / https://embed.tawk.to/ SetOutputFilter INFLATE;SUBSTITUTE;DEFLATE RequestHeader unset Accept-Encoding AddOutputFilterByType SUBSTITUTE text/html AddOutputFilterByType SUBSTITUTE text/css AddOutputFilterByType SUBSTITUTE text/javascript AddOutputFilterByType SUBSTITUTE text/plain AddOutputFilterByType SUBSTITUTE text/xml AddOutputFilterByType SUBSTITUTE application/json AddOutputFilterByType SUBSTITUTE application/javascript AddOutputFilterByType SUBSTITUTE application/x-javascript AddOutputFilterByType SUBSTITUTE x-application/javascript Substitute "s|embed\.tawk\.to|abc\.online|i" Substitute "s|va\.tawk\.to|abc\.online|i" Substitute "s|vsa(.+?)\.tawk\.to|vsa$1.abc\.online|i" Substitute "s|www\.tawk\.to|abc\.online|i" </IfModule> #PROXY-END/
Với cấu hình trên đây sẽ thực hiện
Toàn bộ request mà bắt đầu bằng /v1 sẽ được điều hướng sang link tương ứng va.tawk.to
Toàn bộ request khác sẽ được điều hướng sang embed.tawk.to
Đồng thời trong nội dung trả về sẽ thay thế các từ khoá ví dụ như embed.tawk.to thành abc.online – chính là domain trung gian của chúng ta
Đến đây chúng ta cần xử lý tiếp forward socket để đảm bảo kết nối
#PROXY-START/ <IfModule mod_proxy.c> ProxyRequests Off SSLProxyEngine on SetEnvIf Host "^([^.]*).abc.online$" SUBDOMAIN=$1 ProxyPassInterpolateEnv On ProxyPass / wss://${SUBDOMAIN}.tawk.to/ interpolate ProxyPassReverse / wss://${SUBDOMAIN}.tawk.to/ interpolate </IfModule> #PROXY-END/
Trong này chúng ta sẽ forward toàn bộ các subdomain của abc.online sang subdomain.tawkto. Điều này làm như vậy bởi vì các socket của tawkto thường bắt đầu bằng vsa{number}.tawk.to. Nên chúng ta sẽ forward tương ứng sang link gốc
Chú ý rằng cấu hình này cần trỏ về cho wildcard của domain
Đến bước này trong đoạn mã script của bạn cài đặt tawkto, thay vì dùng embed.tawk.to hãy thay thế bằng abc.online. Khi này tawkto sẽ hoạt động một cách bình thường.
Tuy nhiên phương án trên đây là phương án tạm thời, không khuyến khích dùng lâu dài.
Bình luận: