Thứ Bảy, 31 tháng 1, 2015

Varnish – Tìm hiểu VCL

Khi sử dụng Varnish, chắc chắn bạn sẽ nghe nhiều đến VCL và nhất là tập tin /etc/varnish/default.vcl. Vậy VCL là gì? ý nghĩa của những đoạn code trong đó ra sao? Trong bài này mình sẽ giải thích khái quát cho các bạn hiểu về VCL để có thể tự tìm hiểu hơn ở trang Varnish Documentation. Cũng xin nói trước rằng các đoạn code trong VCL đa phần là dò tìm và so sánh giá trị nên sẽ sử dụng regex (biểu thức chính quy) rất nhiều nên đây là dịp tốt bạn nên tìm hiểu luôn về biểu thức chính quy.

VCL trong Varnish là chữ viết tắt của Varnish Configuration Language (ngôn ngữ cấu hình Varnish), đọc qua tên chắc bạn cũng biết nó là cái gì rồi. VCL được phân cấu trúc bởi các chương trình con (subroutines) và mỗi chương trình con sẽ đều có một chức năng khi các đoạn code bên trong mỗi chương trình con khớp với chỉ thị của các truy cập gửi vào server. Nghe có vẻ trừu tượng quá, bạn hãy tưởng tượng VCL có một số chương trình con trong VCL như chương trình trả dữ liệu về client, chương trình nhận dữ liệu về client,…và trong mỗi chương trình đó ta sẽ viết code để điều khiển nó làm việc như ý muốn. Ví dụ bạn có thể chỉ định Varnish không gửi cache đến các truy vấn truy cập vào website đang mang một cookie nào đó (ví dụ như cookie wordpress_logged_in của các truy vấn của người dùng đang đăng nhập vào WordPres).

Mặc dù VCL rất đơn giản nhưng lại cực kỳ mạnh mẽ bởi vì bạn có thể tự xây dựng một subroutine ngoài việc sử dụng các subroutine có sẵn của Varnish. Dưới đây là ví dụ của một đoạn code sử dụng subroutine vcl_recv để tùy biến việc nhận dữ liệu từ backend server vào Varnish.

sub vcl_recv { # Không load cache cho những người dùng WordPress đang đăng nhập (dùng cookie wordpress_logged_in) if ( req.http.cookie ~ "wordpress_logged_in" ) { return( pass ); }}

Điều này cũng có nghĩa là tất cả các code trong file default.vcl đều phải đặt trong một subroutine và một subroutine không thể tái sử dụng hai lần trong cùng một tập tin.

Nếu file default.vcl của bạn không có nội dung VCL nào ngoài dòng backend server để khai báo cổng kết nối của backend, thì tất cả các trang của bạn đều được gắn cache và tự động hủy (purge) sau 2 phút.

Cấu trúc code của VCL rất đơn giản và dễ hiểu, thoạt nhìn bạn có thể thấy nó có chút hơi na ná với ngôn ngữ C hoặc Perl. Một đoạn VCL được bao gồm thế này:

sub tên-chương-trình-con { // Các quy tắt thực thi}

Trong đó, sub là từ khóa khai báo một subroutine, các subroutine có sẵn luôn bắt đầu là vcl_ nhưng nếu bạn tự tạo subroutine thì bạn sẽ không có quyền đặt tên là vcl_.

Như mình đã nói ở trên, VCL có cấu trúc giống như C hoặc Perl nên việc một đoạn code VCL nhìn giống C là điều hiển nhiên, kể cả trong cú pháp.

Khi thiết lập giá trị kiểu chuỗi trong VCL, bạn chắc chắn rằng nó luôn được bọc trong dấu nháy đôi “…” và không được xuống hàng. Kể cả khi bạn dùng regex (biểu thức chính quy) thì việc khai báo các ký tự đặc biệt cũng phải được đặt trong cặp dấu nháy đôi.

req.url ~ "(?i)\.(png|gif|jpeg|jpg|ico|swf|css|js|html|htm)(\?[a-z0-9]+)?$" )

Tuy là một ngôn ngữ đơn giản nhưng VCL cũng hỗ trợ một số toán tử như:

=Gán giá trị.==So sánh bằng giá trị tuyệt đối.~So sánh bằng giá trị tương đối/tương đương, hoặc sử dụng với regex.!Phủ định.&&Logical and||Logical or

Các subroutine mình khai báo trong đây là các subroutine ở Varnish 3. Trên phiên bản Varnish 4, một số subroutine đã được đổi tên, xem tại đây.

Xin nhắc lại rằng, subroutine nghĩa là một chương trình con để gom nhóm các đoạn code bên trong để nó sẽ thực thi dựa vào ý nghĩa của từng subroutine. Mặc định Varnish cung cấp sẵn một số subroutines như:

Các code trong nhóm này sẽ được gọi ra khi bắt đầu khách gửi một truy vấn đến server, hoặc sau khi hoàn thành một truy vấn đã được nhận và phân tích. Mục đích của subroutine này là để điều hướng kiểm tra dữ liệu của người gửi truy vấn nhằm có thể điều hướng cho Varnish gửi truy vấn thẳng đến backend server mà không cần trả lại cache cho khách.

Tiến trình xử lý của subroutine này sẽ được kết thúc bằng return(), nó có thể chứa các từ khóa như:

hash – Khi return bằng từ khóa này, trang của người dùng sẽ được Varnish hiểu như là có thể lưu cache bằng cách gán cho nó một mã băm riêng biệt, lúc này Varnish sẽ chuyển đến subroutine vcl_hash để nó làm việc.pass – Khi return bằng từ khóa này, Varnish sẽ gửi truy vấn đến trực tiếp backend server, bạn có thể hiểu nếu pass thì khách sẽ truy cập thẳng vào backend server mà không có cache.pipe – Chuyển request đến Pipe Mode dựa trên subroutine vcl_pipe.purge – Chuyển đối tượng request thành một biến thể để loại bỏ, nó sẽ được xử lý thông qua subroutine vcl_hash và vcl_purge.

Ngay sau khi subroutine nếu có chuyển quá trình xử lý đến Pipe Mode thông qua việc return(pipe) thì các code trong subroutine này sẽ được thực thi. Hãy hiểu rằng, Pipe Mode là Varnish sẽ mở một kết nối hai chiều TCP Proxy để request có thể gửi thẳng đến backend server và ngược lại. Hãy nhớ rằng, nếu bạn có sử dụng subroutine này thì không có bất cứ subroutine nào khác được xử lý sau khi Pipe Mode kết thúc. Pipe Mode sẽ được kết thúc bằng return() với một số từ khóa như:

pipe – chuyển request vào Pipe mode.

Subroutine này sẽ được áp dụng khi request được gửi vào pass mode. Pass mode nghĩa là các request sẽ được gửi đến thẳng backend server và backend server sẽ trả lại dữ liệu mà không truy cập vào bất cứ đối tượng cache nào.

Subroutine này sẽ được kết thúc bằng return() với một số từ khóa như:

fetch – Báo hiệu request này đã đi vào pass mode và backend server bắt đầu xử lý.restart – Bắt đầu lại quá trình chuyển giao request.

Subroutine vcl_hit sẽ được gọi ra khi request đã tìm thấy một bản cache phù hợp thành công trong Varnish. vcl_hit sẽ được kết thúc quá trình bằng return() với các từ khóa:

deliver – Chuyển giao đối tượng cache cho người gửi request.fetch – Đồng bộ lại dữ liệu của đối tượng đã được lưu cache với nội dung trả về từ backend server. Lúc này, subroutine vcl_miss sẽ bắt đầu làm việc.pass – Gửi request vào pass mode với vcl_pass.restart – Bắt đầu lại quá trình chuyển giao request.

Subroutine này sẽ được kích hoạt nếu request không tìm thấy đối tượng cache phù hợp, hoặc request được return(fetch) ở subroutine vcl_hit.

Nó cũng sẽ được kết thúc bằng return() với các từ khóa như sau:

fetch – lấy lại đối tượng đã được request đến backend. Nó sẽ được control qua subroutine vcl_backend_fetch.pass – Đưa request vào pass mode và xử lý bằng vcl_pass.restart – Bắt đầu lại quá trình chuyển giao request.

Ngay sau khi các request được xử lý bằng vcl_recv mà được return(hash) thì subroutine này sẽ làm việc. Nó được sử dụng như để tìm ra một đối tượng đã được cache trong Varnish bằng một mã băm riêng biệt.

Riêng với subroutine này nó chỉ có một cách kết thúc quá trình là return(lookup) để tìm một đối tượng cache.

Được gọi ra khi quá trình purge cache bắt đầu. Nó sẽ được kết thúc quá trình bằng return() với các từ khóa:

restart – Bắt đầu lại quá trình chuyển giao request.

Subroutine này sẽ được gọi ra trước khi bất cứ đối tượng nào được gửi cho người gửi request, ngoại trừ kết quả của subroutine vcl_synth. Nó kết thúc bằng return() với các từ khóa:

deliver – Chuyển giao đối tượng cache cho người gửi request.restart – Bắt đầu lại quá trình chuyển giao request.

Subroutine này sẽ được thực thi khi backend server bị lỗi không truy cập được để lấy dữ liệu. Trường hợp dùng nhiều nhất là khai báo hàm synthetic() trong subroutine này để tạo một trang báo lỗi trong Varnish. Subroutine này mình sẽ có một số ví dụ ở phần sau.

Ngoài tập tin default.vcl mặc định, bạn có thể tạo ra nhiều file.vcl khác và sau đó bạn có thể sử dụng từ khóa include trong file default.vcl để load nó.

include "wordpress.vcl";include "main.vcl";

Nếu bạn có đọc qua nội dung VCL mà mình đã kêu bạn copy thì sẽ thấy có một số biến như req.url, req.request,…Vậy nó là gì, Varnish có những biến gì? Ở phần này bạn sẽ hiểu. Danh sách các biến toàn cục của VCL có rất nhiều nên mình chỉ liệt kê một số biến hay sử dụng mà thôi, bạn có thể xem chi tiết tại đây.

Ngoài ra, các biến toàn cục này có thể được gán giá trị bằng từ khóa set hoặc unset để bỏ gán.

nowHiển thị thời gian hiện tại.

Các biến dưới đây sẽ lấy thông tin ở backend server:

.hostHostname hoặc địa chỉ IP của Varnish Server..portLấy số cổng kết nối đang được Varnish sử dụng.

Các biến dưới đây sẽ dùng được trong một quá trình xử lý các request:

client.ipĐịa chỉ IP của máy khách đang gửi truy vấn.client.identityMã chứng minh của khách truy cập.server.hostnameTên hostname của máy chủ.server.ipĐịa chỉ IP của máy chủ mà khách truy cập đang truy cập vào.server.portPort của máy chủ mà khách truy cập đang truy cập vào.req.requestLoại request: POST, GET, TRACE, HEAD,….req.urlĐịa chỉ URL được gửi request.req.protoGiao thức HTTP được gửi request.req.backendTên của backend server được xử lý request.req.backend.healthyWhether the backend is healthy or not. Requires an active probe to be set on the backend.req.http.headerThông tin header của địa chỉ gửi request.req.hash_always_missNếu biến này được thiết lập giá trị là true, thì Varnish sẽ không quan tâm đến bất kỳ đối tượng nào được trả về từ backend server.req.restartsHiển thị số lần request đã được restart.

Ở trên bạn đã đọc qua một số khái niệm quan trọng trong VCL rồi, bây giờ mình sẽ cho bạn một số ví dụ về VCL để bạn hiểu hơn về cách làm việc của nó.

Cho request pass vào backend server trong đường dẫn http://domain/wp-admin hoặc wp-admin:

sub vcl_recv { # Pass các request trang admin vào backend if ( ! ( req.url ~ "wp-(login|admin)" ) ) { return (pass); }}

Hiển thị trang báo lỗi nếu backend server bị ngưng hoạt động.

sub vcl_backend_error { set obj.http.Content-Type = "text/html; charset=utf-8"; synthetic {" We'll Be Right Back!

WEBSITE ĐANG BỊ NGHẼN - HÃY ĐỢI MỘT CHÚT

Website sẽ tự động làm mới sau mỗi 3 giây

"}; return(deliver);}

Chặn liên kết ở các website khác. Ví dụ như chặn hiển thị hình ảnh từ link của bạn trên website khác.

sub vcl_recv { if (req.http.host == "www.example.com" && req.url ~ "^/fun/" && (req.http.referer && req.http.referer !~ "^http://www.example.com/")) {error 403 "No hotlinking please";}}

Một số nguồn cấu hình VCL khác như:

Trong bài này có lẻ mình đã viết hơi dài rồi và có thể kết thúc serie Varnish 3 tại đây. Hãy nhớ rằng bài viết của mình chỉ nói khái quát chứ không thể nói chi tiết được VCL của Varnish nên hãy lên Google gõ “Varnish Documentation” để biết thêm chi tiết để có hiểu nó toàn diện hơn.

Hy vọng với serie Varnish này, các bạn có thể dễ dàng áp dụng phần mềm này vào máy chủ của mình để có thể tối ưu hơn về tốc độ của website.

Tổng hợp plugin WordPress hay – #2

Thay vì việc chia danh sách các plugin hay mỗi tháng như bài này, thì bắt đầu từ bài này mình sẽ chia danh sách các plugin hay mà mình tìm được theo dạng số và mỗi kỳ sẽ là một số để bạn theo dõi tiện hơn, cũng như tránh các hiểu lầm không đáng có.

Trong số này, mình muốn giới thiệu đến các bạn một số các plugin miễn phí và trả phí hay nhất mà mình đã sưu tầm được trong tháng vừa qua. Các plugin này tất cả đều đã được mình thử nghiệm và chắc chắn nó vẫn đang hoạt động rất tốt nên bạn có thể yên tâm sử dụng nha.

title-experiments-plugin

Nếu bạn quan tâm đến kỹ thuật A/B Testing để theo dõi và đánh giá website nhằm tối ưu website theo cách tốt nhất, thì plugin Title Experiments Free này sẽ giúp bạn dễ dàng đánh giá sự hiệu quả của việc đặt tiêu đề post và page. Nó sẽ lưu lại các lần bạn thay đổi tiêu đề và kiểm tra xem loại tiêu đề nào được click vào nhiều nhất để hiểu hơn về thị hiếu của người truy cập.

duplicate-merge-posts-plugin

Nếu bạn thường xuyên sửa lại các post cũ trong WordPress sẽ thấy nó có một nhược điểm là bạn không thể lưu nháp lại một bài đã được đăng (published). Với plugin này, bạn có thể khắc phục nhược điểm đó bằng cách tạo một bản sao của bài cần chỉnh sửa, sau đó có thể dễ dàng gộp bản sao đã được chỉnh sửa vào bài cũ mà không cần sửa trực tiếp bài cũ, quá tiện phải không?

better-search-replace

Trên một số trường hợp, bạn sẽ cần phải cập nhật lại một đoạn nội dung gì đó trong database bằng cách tìm kiếm và thay thế. Ví dụ mỗi khi bạn đổi domain cho website thì chắc chắn sẽ phải cần tìm kiếm đoạn domain cũ trong database và thay thế nó thành domain mới. Plugin này sẽ giúp bạn làm việc đó dễ dàng hơn thay vì sử dụng các plugin Search & Replace phức tạp khác. Bạn có thể tùy chỉnh tìm kiếm và thay thế trên toàn bộ database hoặc một table dữ liệu riêng biệt.

distraction-preview-button

Plugin này rất đơn giản, đó là chèn một nút Preview nội dung trên khung soạn thảo vì ở chế độ soạn thảo chống làm phiền, nút Preview sẽ bị ẩn đi nên bạn phải quay trở lại chế độ soạn thảo thông thường mới có thể xem trước nội dung.

simple-post-expiration

Nếu bạn muốn đặt thời hạn cho một post nào đó thì plugin này có thể giúp bạn làm đơn giản hơn. Bạn có thể gắn thời gian hết hạn cho post và mỗi khi nó hết hạn thì sẽ hiển thị chữ Expired trên tiêu đề để người ta biết post đó đã hết hạn rồi. Còn nếu bạn muốn post đã hết hạn là không còn hiển thị nữa thì có thể sử dụng plugin nhiều chức năng hơn tên là Post Expirator.

kraken-image-optimizer

Plugin này sẽ giúp bạn tự động giảm dung lượng ảnh trên website với hơn 60% mà không làm giảm chất lượng nhiều thông qua API của dịch vụ Kraken.io.

clean-image-filenames

Nếu bạn đã trót lỡ đặt tên ảnh là tiếng Việt hoặc có ký tự đặc biệt thì hãy sử dụng plugin này để đổi tên lại toàn bộ các hình ảnh có trên website, bởi vì nhiều cấu hình webserver sẽ không thể hiển thị được các hình ảnh có ký tự đặc biệt.

avh-extended--categories-widget

Nếu bạn muốn hiển thị danh sách các post categories ra sidebar nhưng lại không muốn sử dụng cái Widgets. Mặc định mỗi website WordPress đều…" href="http://thachpham.com/glossary/widget" target="_blank">widget Categories có sẵn, thì bạn có thể cài plugin này vào để có một widget hiển thị category nhiều chức năng hơn. Bạn có thể loại bỏ một số category không muốn hiển thị, hiển thị kiểu phân cấp và hiển thị icon RSS cho mỗi category.

sidekick-plugin

Nếu bạn chuyên làm website cho khách hàng, sử dụng WordPress thì đây là một “vũ khí” mới mà bạn nên trang bị để hướng dẫn khách hàng sử dụng website dễ hiểu hơn. Nó sẽ giúp bạn tạo ra một quy trình hướng dẫn trực quan ngay khi người dùng vào Dashboard, bạn có thể chèn lời nói vào trong đó nữa. Xem demo tại đây.

styleguide-plugin

Nếu bạn là người mới dùng WordPress, không có nhiều kiến thức CSS để tùy biến lại màu sắc của các theme mặc định thì Styleguide đúng là trợ thủ đắc lực cho bạn làm việc này. Khi cài plugin này vào ở các giao diện mặc định, bạn sẽ có quyền tùy biến lại màu sắc và các thông tin về giao diện đến từng chi tiết nhỏ nhất.

widget-visibility-time-schelduler

Đơn giản là bạn có thể thiết lập thời gian ngừng hiển thị widget.

doken-lite

Mới đây, plugin Dokan dành cho Woocommerce đang rất đình đám ra mắt một phiên bản miễn phí với hạn chế các tính năng quan trọng. Dokan là plugin giúp bạn biến trang shop Woocommerce của bạn thành một trang mạng xã hội thương mại điện tử với các tính năng cho phép người dùng bán hàng của họ trên shop của bạn.

viral-social-sharing-by-up

Bây giờ bạn có thể giúp thành viên của bạn thấy có động lực hơn bằng cách tích hợp dịch vụ UP vào các nút chia sẻ bài viết lên mạng xã hội. Khi người dùng share nội dung của bạn, họ có thể nhận được số điểm tương ứng trong tài khoản UP của họ và có thể quy đổi ra tiền.

perfect-seo-url

Nếu bạn đang sử dụng Woocommerce và cần đổi lại cấu trúc đường dẫn của category, sản phẩm, các thuộc tính,….thì đây là plugin tốt nhất hiện tại để làm được việc đó. Kể cả việc đường dẫn của bạn có một slug /product/ trên đó thì nó vẫn có thể giúp bạn xóa cái slug đó đi mà không làm ảnh hưởng đến website.

jmedia-category

Plugin này tuy đơn giản nhưng lại có rất nhiều người cần đó là tạo một taxonomy tên là Category dành cho hình ảnh bạn upload lên để bạn dễ dàng sắp xếp lại hình ảnh có trên website, và khi chèn ảnh vào bài bạn cũng có thể lọc xem ảnh theo category rất tiện lợi trong việc dùng lại ảnh cũ.

blog-manager-plugin

Có thể bạn sẽ cần tùy biến lại giao diện hiển thị các bài viết trên website của mình theo nhiều phong cách khác nhau, nhưng lại gặp rào cản về kiến thức lập trình để có thể làm được như ý muốn. Blog Manager sẽ giúp bạn tạo ra nhiều kiểu hiển thị bài viết trên website, bạn có thể chèn kiểu hiển thị đó vào page và vào thiết lập page làm trang chủ là được.

uberchat

Nếu bạn đang sử dụng các dịch vụ chat ới khách hàng như Zopim hay Subiz thì có thể biết là các dịch vụ đó đều là trả phí hàng tháng. Nếu bạn không muốn trả phí hàng tháng như thế nữa thì có thể trả tiền một lần để sử dụng plugin UberChat này, nó sẽ có chức năng cho khách hàng chat với bạn qua khung chat trên website, và bạn có thể nhận được thông báo chat và trả lời khách hàng bằng một phần mềm trên Windows có kèm theo trong plugin.

wordpress-typewriting-plugin

Một plugin đơn giản, dễ sử dụng để bạn tạo ra một đoạn text có hiệu ứng typewriting, bạn có thể hiển thị nó ra thành một shortcode và chèn bất cứ chỗ nào.

ajax-pagination-infinitescroll

Một plugin đơn giản để bạn có thể sử dụng cả hai hiệu ứng tải bài bằng AJAX đó là sử dụng AJAX cho nút phân trang hoặc Infinite Scroll (kéo xuống dưới bài mới sẽ tự load ra). Tuy nhiên một điều cần lưu ý là plugin này không phải kiểu “cắm vào và chạy” mà bạn sẽ cần thiết lập vùng chọn của các khu vực hiển thị post để nó load nội dung ra chính xác.

Như vậy là trong số này chúng ta có được 20 plugin miễn phí lẫn trả phí rất hay mà bạn ít nhất nên biết hoặc có thể sử dụng qua. Hy vọng trong kỳ tới sẽ có sự góp mặt thêm của nhiều plugin tuyệt vời hơn.

Các themes WordPress miễn phí đẹp nhất tháng 1/2015

Mặc dù mình đã có ghi thông báo tạm không đăng bài đến qua Tết nhưng do một số bài được người dùng yêu cầu viết nên phải viết, và bài mang tính chất mỗi tháng như việc giới thiệu các theme miễn phí đẹp nhất lại càng phải viết, vì biết đâu gần Tết cổ truyền rồi bạn sẽ tìm được một theme ưng ý mà không cần phải mua các theme trả phí tốn kém thì sao? Với các theme miễn phí đẹp nhất mà mình đã sưu tầm được trong tháng này, hy vọng việc tìm được một theme miễn phí phù hợp với nhu cầu của bạn không còn quá khó khăn nữa.

modern-freetheme

Modern là một theme miễn phí mới nhất và cũng có thiết kế rất là đẹp cho những người dùng cần theme để làm một website portfolio trực tuyến, hoặc có thể viết blog. Sở dĩ nó có thể làm được trang portfolio là vì các sản phẩm trong portfolio sẽ được hiển thị với dạng lưới và kèm theo bộ lọc rất tiện dụng, ngay bên dưới phần hiển thị portfolio là các khung hiển thị các bài viết khá đẹp và gọn gàng. Đặc biệt hơn, nhà thiết kế cũng có một bản hướng dẫn để bạn có thể biết cách sử dụng và thiết lập theme này hiển thị như demo.

lawyeria-lite-theme

Cái tên Lawyeria có vẻ theme này chỉ phù hợp cho mục đích làm website giới thiệu dịch vụ luật sư, nhưng dĩ nhiên bạn vẫn có thể áp dụng cho các hình thức website giới thiệu dịch vụ khác. Điểm nhấn của theme là trang chủ sẽ là trang giới thiệu thông tin về dịch vụ rất bắt mắt để bạn trình bày nội dung giới thiệu. Chỉ vậy thôi, nhưng có thể nhiêu đó là đã đủ cho một website giới thiệu dịch vụ.

bravo-theme

Bravo là một theme miễn phí để làm blog dành cho những ai cần sự đơn giản, không quá cầu kỳ để tập trung tối đa vào nội dung. Nhưng với sự đơn giản này, đây cũng là một lợi thế nếu bạn có khả năng tùy biến theme để làm nó trở nên phù hợp với nhu cầu của bạn.

catch-base-pro

Catch Base là một ứng cử viên sáng giá nếu bạn cần một theme để tự tùy biến lại phù hợp cho cả mục đích làm blog và làm trang giới thiệu doanh nghiệp vì Catch Base vốn được sinh ra để làm việc đó. Mặc định nó hỗ trợ một giao diện đơn giản nhưng bắt mắt, Responsive đầy đủ và nhiều Page Template.

perkins-theme

Nếu bạn cần một theme đơn giản nhưng tinh tế, màu sắc hài hòa dành cho một blog cá nhân thì Perkins là lựa chọn rất phù hợp dành cho bạn. Theme này dành cho blog nên sẽ không có gì đặc biệt, nhưng cái đặc biệt của nó là đơn giản nhưng vẫn rất “sang”.

gibson-theme

Cũng là một theme dành cho blog cá nhân đơn giản nhưng với tông màu tối, hiển thị ảnh đại diện dạng lớn nên sẽ phù hợp với các blog về thời trang hơn, nhưng dĩ nhiên là nó rất đẹp.

keratin-theme

Keratin tuy mang một giao diện đến mức tối giản, chỉ có hai màu sắc duy nhất nhưng về tính năng thì khá đầy đủ như nó có thể hỗ trợ hiển thị bài viết theo nhiều Post Format khác nhau, hiệu ứng phóng ảnh khi rê chuột vào nhìn khá bắt mắt.

tk-theme

_tk là một starter theme với sự kết hợp giữa starter Underscores lừng danh và Bootstrap Framework cho những ai muốn tìm một theme đơn giản, đã tích hợp Bootstrap đầy đủ để tiến hành tùy biến theo ý thích của mình. _tk hiện tại đang hỗ trợ hiển thị toàn bộ các thành phần trong Bootstrap Framework phiên bản mới nhất và có Responsive.

everal-theme

Thoạt nhìn có thể bạn không tin Everal là một theme hoàn toàn miễn phí (không có bản Pro gì cả, bản miễn phí duy nhất), nhưng sự thật đây là một theme miễn phí bạn có thể sử dụng ngay bây giờ. Everal hỗ trợ bạn tùy biến lại sidebar, một số shortcode rất đẹp và trình bày bài viết dưới nhiều post format khác nhau.

profitmag-theme

Đây là một theme dạng tin tức hoàn toàn miên phí hiếm hoi mà bạn có thể tìm thấy ngay bây giờ. Mặc dù theme tin tức này vẫn còn khá đơn giản nhưng dĩ nhiên bạn vẫn có thể tùy biến thêm dựa trên cấu trúc của nó.

business-one-theme

Giờ đây việc có được một theme giới thiệu sản phẩm/dịch vụ miễn phí với nhiều hiệu ứng đẹp lung linh đã không còn quá khó nữa, khi mà bây giờ bạn có thể tải theme Business One về và sử dụng để có một website như ý. Trong trang tải theme, họ có đính kèm một video để bạn có thể làm được trang chủ như demo mà không cần phải vọc vạch nhiều nữa.

Ở trên là các theme miễn phí mà mình thấy đẹp nhất trong các theme WordPress miễn phí được ra mắt vào tháng 1 này. Dĩ nhiên nó có thể không đẹp được như các theme trả phí nhưng đôi khi có những theme miễn phí lại phù hợp hơn với nhu cầu của chúng ta nên sẽ có thể tiết kiệm được một khoản tiền.

Kiếm Tiền Trên Mạng Với TeeSpring Tại Sao Lại HOT?

teespringNhiều bạn cứ hỏi mình trên facebook và qua email về thực hư chuyện bán áo thun trên Teespring hay nhiều trang khác là như thế nào. Xin trả lời các bạn đó là sự thất và trong bài viết về kiếm tiền trên mạng có phải là lừa đảo mình đã chia sẻ một chút về mô hình này.

Trước khi đi vào chi tiết mình cũng xin nói trước là mình không phải là người thành công lắm với mô hình bán áo thun này mà chỉ tham gia khi thấy nó có tiềm năng và kết quả cũng không phải là tồi. Xin chia sẻ lại để các bạn tham khảo thêm nhé.

Tài khoản 1 Tài khoản 1

Tài khoản 2 Tài khoản 2

Trước hết chúng ta cùng tìm hiểu về TeeSpring một chút. Đây là một trang dạng crowdfunded hiểu nôm na là huy động vốn từ cộng đồng để tạo ra các sản phẩm trên những chiếc áo thun/áo phông. Bạn tham gia miễn phí và có thể thiết kế tùy thích theo khả năng của mình với một công cụ thiết kế online thuộc dạng mạnh nhất so với các dịch vụ cùng loại hiện nay.

Bên cạnh đó, bạn được phép tự đặt mức giá, thời gian chạy chiến dịch và biết được mức lãi trên mỗi áo bán bạn ra là bao nhiêu nếu bạn đủ chi tiêu (tối thiểu là 10 cái). Tất nhiên nếu bạn bán vượt chi tiêu sẽ có bonus từ Teespring. Chính những tính năng này giúp bạn có được cảm giác tự do hơn khi thiết kế và bán áo thành công hơn.

Gần đây Teespring đưa thêm nhiều tính năng giúp người tham gia cơ hội bán nhiều hơn khiến mình cảm thấy đây là trang có sự phát triển mạnh nhất so với các trang cùng loại khác.

Đúng là thiết kế là chuyện không khó với nhiều bạn nhưng bán được hay không lại là chuyện khác. Tuy nhiên, sự kết hợp giữa Teespring + Facebook Ads đã tạo nên nhiều triệu phú đô la từ việc bán áo thun trên thế giới. Ở Việt Nam nhiều bạn cũng kiếm vài trăm ngàn USD chỉ từ việc bán áo này không phải là hiếm. Tiềm năng là không giới hạn!

Facebook là công cụ tốt nhất tại thời điểm này để quảng bá cho các mẫu áo thiết kế thông qua Facebook Ads hoặc Fanpage. Vấn đề là bạn cần ngân sách, biết sử dụng Facebook Ads và cách target đúng khách hàng tiềm năng.

Ví dụ: Bạn thiết kế một chiếc áo dành cho những phụ nữ yêu thích chó chẳng hạn thì bạn sẽ phải nhắm tới những ai yêu thích chó mà là nữ trên facebook thì quảng cáo chỉ hiện cho những người đó thôi.

Tất nhiên, kinh nghiệm sau khi chạy một vài chiến dịch sẽ giúp bạn tối ưu chi phí hơn cho các quảng cáo của mình.

Hiện tại, cho các chiến dịch của Teespring ngắn từ 3-23 ngày nên việc sử dụng SEO là điều không khả thi tron khi facebook bạn còn có thể tương tác với khách hàng tiềm năng khi họ băn khoăn về giá, vận chuyển hay độ uy tín…Kinh nghiệm cho thấy, việc trả lời các comment trên các chiến dịch facebook đóng góp rất lớn vào việc tăng doanh thu.

Trong khóa học tiếp thị liên kết V3 mình đã thêm 1 module chuyên về Teespring và sẽ mở rộng ra các mạng khác khi có thông tin và dường như các bạn có vẻ thích. Đơn giản đây là cách đâu tư thấy ngay lợi nhuận vì bạn có thể thấy lại trong 3 ngày hoặc 7 ngày. Teespring trả ngay lợi nhuận cho bạn khi chiến dịch thành công qua PayPal hay Payoneer đều được.

Với tâm lý kiếm tiền nhanh của nhiều bạn thì mô hình này có vẻ như là tương đối phù hợp giúp bạn lấy lại vốn ngay trong tuần.

Mốt lý do nữa bạn cần đăng ký ngay hôm nay qua link của mình là bạn sẽ nhận được thêm $1 cho mỗi áo bán ra và mình cũng thế. Đây là dạng win-win. Nghĩa là bạn đăng ký thẳng trên Teespring và mỗi áo bạn lãi $10 thì nếu bạn đăng ký tài khoản qua link dưới thì bạn sẽ lãi $11/áo. Quá tốt đúng không?

eBlogViet là blog cá nhân chuyên về tiếp thị liên kết, internet marketing và kiếm tiền trên mạng cho cộng đồng blogger Việt Nam. Đăng ký nhận tin RSS để không bỏ lỡ các tin cập nhật.

Cách tạo một Facebook Apps và lấy App ID, Secret Key

Trong các bài hướng dẫn thêm tính năng đăng nhập bằng tài khoản Facebook, tự động đăng bài lên Facebook,…v…v…đều có phần mình kêu các bạn nhập App ID và Secret Key vào để nó có thể kết nối đến app tượng trưng cho website của bạn trên Facebook để có thể thống kê và tạo ra các kết nối đến các fanpage/group mà bạn đang quản lý để nó có thể đăng nội dung lên.

Nhưng mình nhận thấy là có rất nhiều bạn chưa biết cách tạo Facebook App và lấy App ID, hoặc là có thể chưa làm đủ bước để cái app đó có thể hoạt động được nên mình đã nhờ một bạn có nickname NamCoder viết một bài hướng dẫn chi tiết về cách tạo Facebook App ở Việt Nam, kèm theo đó là những bước cần thiết để app của bạn có thể hoạt động được.

Các bạn đăng nhập vào tài khoản FB của mình, và truy cập vào https://developers.facebook.com. Trên menu phía trên, các bạn rê chuột vào My Apps , chọn Register as a Developer

1-dang-ky-tai-khoan-developer

Tiếp theo Facebook sẽ hỏi xác nhận bạn là có chấp nhận với các quy định của họ hay không, các bạn click vào nút như hình bên dưới và tiếp tục.

2-xac-nhan-dang-ky

Đến bước này FB sẽ cần xác nhận tài khoản của bạn qua điện thoại. Có 2 cách là nhận tin nhắn SMS từ FB hoặc 1 cuộc gọi tự động với voice là giọng đọc dãy số xác nhận. Các bạn nhập số điện thoại của bạn vào. Ở đây mình chọn Send as Text để nhận tin nhắn văn bản cho nhanh.

Điền số điện thoại để nhận mã xác thực

Sau khi nhập số điện thoại vào rồi, các bạn sẽ nhận được tin nhắn từ Facebook, với mẫu như hình bên dưới, các bạn nhập dãy số đó vào ô mã xác nhận rồi click nút Đăng ký để tiếp tục.

4-tin-nhan-fb

Nếu thành công, bạn sẽ thấy thông báo như thế này:

5-dang-ky-thanh-cong

Các bạn tiếp tục rê chuột vào phần menu My Apps, rồi chọn Add a New App

6-tao-app-moi

Facebook sẽ hỏi bạn là muốn tạo App cho ứng dụng nào, ở đây mình chọn loại là Web (và bạn cũng nên chọn thế nếu dùng App này trên website).

7-app-web

Tiếp theo các bạn hãy nhập tên cho App của bạn, ở đây mình viết là: ThachPhamApp, xong bấm chọn Create New Facebook App ID.

8-viet-ten-app

Sau khi bấm nút Create New Facebook App ID, bạn bấm chọn Skip and Create App ID để qua trang quản lý app chính, bỏ qua bước Quick Start này, vì mục đích bài này là để bạn lấy được App ID và Serect ID chứ chưa triển khai app vào website

9-skip-create-fb-id

Các bạn sẽ được chuyển đến trang quản lý thông tin và cấu hình app, các bạn sẽ thấy dãy số App ID của bạn trong khung tương ứng và các bạn bấm vào nút Show trong khung App Secrect để thấy dãi mã này.

10-show-serect

Dãy mã này sẽ dùng để các bạn khai báo vào website của các bạn, nó sẽ trông như thế này (ở đây là mình demo nên show dãy mã ra, các bạn nên giữ dãy mã này và không nên cho ai biết).

11-day-ma-app

Vậy là bạn đã có App IDApp Secret để khai báo cho ứng dụng trong website của bạn rồi. Nhưng để bật App lên và sử dụng được, các bạn làm thêm bước này nữa. Bạn bấm vào menu Setting bên trái, các bạn sẽ thấy hình sau:

12-contact-email

Ở đây các bạn cần phải khai báo Contact EmailSite URL cũng như Mobile Site URL thì mới có thể bật App lên để sử dụng được, sau khi điền các thông tin đó xong, các bạn lưu lại. Tiếp tục bấm vào menu bên trái là: Status and Review. Lưu ý thêm là phần Apps Domain bạn phải nhập giống ới Site URL theo cấu trúc domain.com, trong ảnh tác giả quên điền.

Các bạn click vào cái nút như trên hình dưới để bật App lên.

13-bat-app

Bật xong các bạn sẽ thấy App của bạn đèn xanh hiện lên

14-app-bat-ok

Ok, vậy là app của bạn bây giờ đã hoạt động được và bạn có thể copy cái App ID và Secret Key vào nơi nào mà nó yêu cầu bạn nhập là nó sẽ tự kết nối được đến tài khoản của bạn. Chúc các bạn thành công!

Hướng Dẫn Rút Tiền Từ Payoneer Về Ngân Hàng Việt Nam

Trong một bài viết khá lâu mình có giới thiệu về Payoneer Prepaid Master Card – một trong những công cụ giúp các bạn làm tiếp thị liên kết Việt Nam rút ngắn thời gian nhận tiền từ các mạng tiếp thị liên kết như Amazon, Shareasale, Clickbank, Avangate…hay kể cả các trang thanh toán như PayPal và MoneyBookers, các bạn đã hiểu qua về cách đăng ký và công dụng của công cụ này rồi. Tuy nhiên, tại thời điểm đó, bạn chỉ có thể rút tiền tại các điểm ATM có biếu tượng Visa/Master Card với hạn mức chỉ có 2.000.000 VNĐ/lần như dùng thẻ ATM nội địa và phí cũng tương đối cao.

Tuy nhiên, gần đây Payoneer đã có thêm tính năng mới – đó là cho phép chúng ta rút tiền từ Payoneer về ngân hàng Việt Nam mà không cần phải mất công ra ATM rút nhiều lần. Đây là điều mà chúng ta đã chờ đợi và cuối cùng cũng có câu trả lời từ Payoneer. Hơn thế nữa, Payoneer cũng nhìn nhận thị trường Việt Nam là rất tiềm năng thông qua việc tuyển dụng một người Việt Nam phụ trách thị trường Việt Nam nhưng làm vìệc tại Văn Phòng Israel. Cô ấy đã liên hệ với mình để xem có gì cần hộ trợ và điều này chứng tỏ thị trường Việt Nam đang rất tiềm năng trong chiến lược của Payoneer.

Bạn chỉ cần đăng ký tài khoản Payoneer và kích hoạt nó là có thể sử dụng các tính năng của thẻ này. Sau đó bạn sẽ có thêm 1 tài khoản tại Ngân Hàng Mỹ với dịch vụ US Payment Service giúp bạn nhận tiền và chuyển tiền thuận tiện.

Hôm nay mình xin hướng dẫn cách rút tiền từ Payoneer trực tiếp về ngân hàng Việt Nam để các bạn tiện tham khảo. Hạn mức rút tiền mỗi lần tối thiểu là $500 và tối đa $9.500. Đây là mức rút tiền lý tưởng cho các bạn có thu nhập từ trung bình đến cao từ các mạng tiếp thị liên kết.

Bước 1: Đăng nhập tài khoản Payoneer của bạn

Nếu bạn chưa có account của Payoneer và US Payment Service thì hãy đăng ký cho mình một tài khoản nhé.

p1

Bước 2: Lựa chọn tính năng rút tiền về ngân hàng.

Chọn Withdrawal rồi chọn My bank Account như hình dưới:

p2

Bước 3: Khai báo thông tin tài khoản ngân hàng

Lựa chọn Add bank Account như hình:

p3

Tiếp đó, Payoneer sẽ bắt bạn xác thực thẻ để đảm bảo an toàn cho bạn. Nhập số thẻ, CVV, ngày/tháng/năm sinh và mật khẩu đăng nhập Payoneer như hình:

p4

Bây giờ bạn sẽ phải khai báo thông tin chi tiết tài khoản ngân hàng của mình. Các thông tin sẽ bao gồm:

Quốc gia,Lọai tiền tệ,Chi nhánh,Tên chủ tài khoản,Số tài khoản,Số swift/BIC codeGhi chú (tùy chọn) như demo bên dưới:

p5

Bước 4: Chờ thông tin phê duyệt từ Payoneer

Sau khi khai báo và nhấn nút Finish thì Payoneer sẽ gửi thông tin xác thực về email là đã nhận được yêu cầu của bạn. Thông thường sau 1-3 ngày làm việc họ sẽ gửi thông tin phê duyệt cho bạn như sau:

confirm bank

Lưu ý: Đối với nhiều bạn Việt Nam, Payoneer có thể sẽ yêu cầu bạn xác thực bằng cách cầm chứng minh thư nhân dân sát mặt và chụp ảnh cả mặt và chứng minh thư để gửi cho họ xác thực. Đây là hình thức để bảo vệ bạn. Tuy có hơi khó chịu nhưng nó là cần thiết. Mình không bị nên không hướng dẫn chi tiết bước này và nó cũng chỉ xảy ra khi bạn nhận nhiều lần và nhiều tiền trong tháng.

Về Swift code hay BIC code thì các bạn có thể hỏi ngân hàng của mình để biết chi tiết. Đối với Vietcombank thì bạn có thể lấy Swift code tại trang này: http://www.vietcombank.com.vn/personal/MoneyTransfer/ Mục nhận tiền từ nước ngoài hoặc như dưới:

BANK FOR FOREIGN TRADE OF VIETNAM
Address: 198 Tran Quang Khai, Hanoi, Vietnam
Swift code: BFTVVNVX

Bước 5: Đặt lệnh rút tiền

Sau khi được phê duyệt thì các bạn đăng nhập và đặt lệnh rút tiền. Chọn Withdrawal -> My Bank Account và làm như hình.

p6

Hạn mức tối thiểu mỗi lần rút: $500Hạn mức tối đa mỗi lần rút: $9.500Hạn mức tối đa rút/tháng: $75.000Thời gian về ngân hàng Việt Nam: 1-3 ngày làm việcPhí rút tiền về ngân hàng Việt Nam:  2%~2.2%, về bank VN thu thêm 0.05%

Hy vọng bài chia sẻ ngắn sẽ giúp anh em đang làm tiếp thị liên kết thêm vững tin và xóa tan nỗi lo trong khâu thanh toán hoa hồng của các mạng nhé. Hiện Payoneer hỗ trợ cho nhiều mạng điển hình như sau:

Airbnb
Airpush Inc.
Alamy Inc.
Amazon.com Inc. (and its subsidiaries, including CreateSpace, a DBA of On-Demand Publishing, LLC.)
AOL
Apollo Group, Inc.
Apple Inc.
Barnes & Noble
Bright Market LLC
Digital River Inc. (and its subsidiaries, including SWReg)
eBay Inc.
E-Trade Financial Corporation
Etsy, Inc.
Facebook Inc.
Getty Images Inc.
Google Inc.(and its subsidiaries, including AdMob)
Half.com Inc.
Helium
Intel Corporation
Keynetics Inc. (Click Bank)
Lifestreet
LinkedIn Corporation
LinkShare Corporation
LSI Corporation
Microsoft Corporation
Nokia Corporation
Overstock.com
PayPal Inc. (Important Note: Transfers from PayPal to Payoneer are allowed, but transfers from the US Payment Service to PayPal are automatically declined)
Pepperjam Inc.
Quotient Integrated Solutions
Research in Motion Limited
ShareASale.com Inc.
Skrill USA – MoneyBookers
The Pep Boys
ValueClick Inc. (Commission Junction)
Workforce Language Services LLC
Yahoo! Inc.
Zecco Holdings, Inc.

ĐĂNG KÝ PAYONEER NGAY

Chúc các bạn thành công

eBlogViet là blog cá nhân chuyên về tiếp thị liên kết, internet marketing và kiếm tiền trên mạng cho cộng đồng blogger Việt Nam. Đăng ký nhận tin RSS để không bỏ lỡ các tin cập nhật.