Chuyện quái gì vậy?

Tối hôm trước mình mới chat với một bạn utaite (hát lại những bài hát Vocaloid) ở trong miền Nam, trong đó mình đã kể về những dự định trong dự án âm nhạc LQ2′ của mình. Sau cuộc chat đó, mình cảm thấy bực bội vô cùng.

Sẵn có blog Noisy Stream này, hôm nay mình xả hết những cái khiến mình khó chịu. Gọi là nhìn lại cũng được, nhưng hầu hết những gì mình thấy ở xung quanh mình đều không mấy tích cực.

Tiếp tục đọc

Bảo vệ và giảm tải cho server

Bài viết tổng quan của mình về tối ưu tốc độ cho server đã nhận được khá nhiều sự quan tâm từ mọi người. Việc đó đã có nhiều công đoạn, tuy nhiên trong quá trình vận hành một website, chúng ta sẽ gặp một số tình huống khiến cho server phải vận động nhiều hơn, hoặc hoạt động một cách bất thường. Ví dụ:

  • Có nhiều client tương tác cùng lúc với server.
    • Có những client chỉ giới hạn tương tác với các chức năng được website đưa ra, cùng với những loại thông tin đầu vào được chức năng đó mong đợi để xử lý. Đó là những yêu cầu bình thường. Đối với các yêu cầu như vậy, ban đầu cần tối ưu lại server (và cả mã nguồn).
    • Nhưng cũng không thiếu những client gửi những yêu cầu chứa thông tin mà chức năng đó của website không mong đợi được nhận, đó là những yêu cầu bất thường.
  • Có một client bị thâu tóm và điều khiển bởi một người hoặc tổ chức nào đó, gửi đến server một loại yêu cầu bất thường khác. Nó có thể không chứa thông tin gì đặc biệt, nhưng được gửi liên tục với tốc độ cao, khiến server nằm trong trạng thái bận trong một thời gian dài, không thể đáp ứng yêu cầu từ các client khác. Loại yêu cầu đó là tấn công từ chối dịch vụ (denial of service – DoS). Mở rộng hơn là tấn công từ chối dịch vụ phân tán (distributed denial of service – DDoS), được thực hiện bởi nhiều client khác nhau.
  • Có nhiều client đến từ nhiều quốc gia khác nhau, có vẻ quan tâm đến nội dung của website. Điều này có thể xảy ra nếu website có nhiều thứ tiếng, hoặc khi một trang được chia sẻ tại một cộng đồng sử dụng ngôn ngữ khác.

Trong những hoàn cảnh như vậy, chúng ta cần đến những giải pháp bảo vệ cho server, góp phần làm cho server bớt phải tải nặng đi. Ngoài ra mình cũng giới thiệu sâu hơn về một số cách khác cũng trực tiếp giảm tải nhưng lại không bảo vệ cho server.

Tiếp tục đọc

Cài đặt một web server tối ưu về tốc độ

Thời gian qua mình đã viết một số bài căn bản về phần mềm server OpenLiteSpeed. Tất cả chỗ đó mới chỉ là phần đầu tiên của quá trình mình di dời từ dịch vụ hosting miễn phí sang server riêng mà thôi.

Nhưng sau khi trải qua được phần đầu tiên ấy, mọi chuyện trở nên rất đơn giản với mình: Cài đặt MariaDB, di chuyển WordPress cùng với database (cơ sở dữ liệu), thiết lập lại các plugin cache và bảo vệ cho WordPress. Thế là xong, các bạn đã và đang chứng kiến blog Noisy Stream này được phục vụ bởi OpenLiteSpeed.

Gần đây mình bổ sung thêm hai thứ: Một là Redis làm cache cho database, hai là CDN làm chuyển bớt việc phục vụ nội dung từ server ra ngoài. Và mình cũng đã sử dụng công cụ MySQLTuner với khả năng đưa ra các gợi ý tinh chỉnh MySQL/MariaDB.

Toàn bộ các việc trên là một thử nghiệm rất hay trong quá trình cài đặt một web server chạy nhanh.

Tiếp tục đọc

SSL và bảo vệ thư mục trong OpenLiteSpeed

Sắp cuối năm rồi, mình sẽ cố gắng hoàn thành nốt hành trình khám phá của mình về OpenLiteSpeed. Bài này sẽ hướng dẫn cách cài đặt SSL trên OpenLiteSpeed một cách thật chi tiết, đi kèm với một số khuyến nghị để nâng cao chất lượng của kết nối SSL giữa máy của người truy cập và website.

Ngoài ra, bài viết này cũng chỉ cho các bạn cách bảo vệ một thư mục hoặc file bất kỳ qua việc sử dụng realm trong OpenLiteSpeed và áp dụng nó vào trong một context (phạm vi) nhất định. Việc bảo vệ này sẽ có ích lớn hơn nếu người dùng thực hiện kết nối SSL đến server, nên mình viết chung về SSL và realm vào chung một bài lớn.

Tiếp tục đọc

Rewrite trong OpenLiteSpeed và chuyển đổi từ .htaccess

Thời gian qua mình đã thực hiện một số cập nhật về hiệu năng cho server và bắt đầu sử dụng CDN để đối phó với hiện tượng đứt của các tuyến cáp quốc tế AAG và SMW-3. Đến thời điểm này, trang web đã phục vụ nội dung được nhanh chóng hơn do tất cả hình ảnh đều được phục vụ bởi CDN. Mình sẽ có các bài trải nghiệm chi tiết sau. Còn bây giờ, mình sẽ tiếp nối series về OpenLiteSpeed, với vấn đề thay đổi thói quen sử dụng file .htaccess (một file thiết lập rất quen thuộc của Apache), sang việc điều chỉnh một cách trực tiếp các thiết lập trong virtual host, điển hình là các lệnh rewrite và một số thiết lập hay dùng khác.

Tiếp tục đọc

“Cô bé robot” Hiền Thu và sự nhầm lẫn tai hại!

Đây là bài viết đầu tiên trên Noisy Stream mà mình không đi sâu về công nghệ…

Gần đây trên sóng của Đài Truyền hình Việt Nam có một chương trình mới tên là Mặt Trời Bé Con, là phiên bản Việt của chương trình Little Big Shots do Warner Bros sản xuất. Bản thân mình khá thích chương trình này, vì một lần nữa mình được thấy tài năng của các bạn nhỏ, lần này là trong một môi trường hoàn toàn mở.

Tuy nhiên số 14 (lên sóng vào ngày 9/12/2017) làm mình buồn cười một cách đầy thất vọng. Đã từ rất lâu rồi, một công nghệ của Nhật Bản tên là Vocaloid mới được giới thiệu lại trên một kênh tin tức chính thống, nhưng tiếc là cô bé Hiền Thu (11 tuổi) trong số này đã chưa đủ hiểu biết về nó, lại còn biểu hiện điều đó ra…

Tiếp tục đọc

Giải quyết vấn đề FTP sau khi cài đặt OpenLiteSpeed

Đây là bài thứ ba mình viết về phần mềm này. Hai bài trước đó mình đã chỉ cách cài đặt OpenLiteSpeed cùng với phiên bản PHP riêng, rồi sau đó là cài đặt virtual host và listener.

Sau khi thực hiện theo hai bài hướng dẫn đó, mọi người đã có thể đăng mã nguồn lên và chạy được rồi. Nhưng đối với một số mã nguồn phức tạp như WordPress chẳng hạn (có giao diện upload file hay giao diện cài đặt bổ sung từ bên ngoài), thì có một số lỗi liên quan đến phân quyền có thể phát sinh, khiến quá trình upload, cài đặt, cập nhật, v.v… qua giao diện của mã nguồn đó bị dừng lại. Ngoài ra, việc điều chỉnh lại user và group cho thư mục document root là nobodynogroup sẽ khiến cho việc upload file qua giao thức FTP trở nên khó khăn nếu không sử dụng quyền của user root (hay chạy lệnh kèm sudo).

Vì thế mình viết bài này để giúp các bạn giải quyết toàn bộ các vấn đề đó mà không cần phải cài đặt thêm File Manager chạy trên nền web.

Tiếp tục đọc

Listener và virtual host trong OpenLiteSpeed

Thời gian qua, mình đã dành nhiều thời gian thử nghiệm phần mềm OpenLiteSpeed trên server. Có một số thiết lập dễ dàng ăn ngay, cũng có một số thiết lập cần thêm các bước cài đặt bổ sung từ giao diện dòng lệnh. Mình cũng đã thông báo một vài lỗi cho LiteSpeed Technologies (công ty đứng đằng sau OpenLiteSpeed) thông qua trang GitHub họ tạo ra cho OpenLiteSpeed. Đến hôm nay, khi có một lỗi liên quan đến cache được họ xác nhận và sửa chữa thì mình quyết định dừng thử nghiệm, và quay lại tiếp tục viết hướng dẫn cài đặt và thiết lập OpenLiteSpeed.

Bài này giả sử rằng các bạn đã thực hiện cài đặt OpenLiteSpeed bản mới nhất trên máy ảo chạy hệ điều hành Ubuntu như mình đã viết ở bài trước. Nếu các bạn đã thực hiện cài đặt theo bài đó thì các bạn sẽ thực hiện thiết lập theo bài này thuận lợi hơn nhiều. Nếu không thì các bạn hãy tự điều chỉnh một cách tương ứng với môi trường máy ảo mà các bạn đang sử dụng.

Bài này hướng dẫn tạo và thiết lập virtual host trên OpenLiteSpeed. Có điều, tại sao tiêu đề bài viết này lại có cả listener (cổng nghe)? Lí do là…

Thiết lập virtual host trên Apache và NGINX có kèm theo việc chỉ định luôn cổng cho virtual host để nghe từ bên ngoài, còn OpenLiteSpeed thì tách riêng thiết lập cổng. Việc này tiện cho việc sử dụng một cổng cho nhiều virtual host và ngược lại. Thiết lập cổng nghe (listener) trên OpenLiteSpeed còn có tuỳ chọn riêng hạn chế truy cập. Hãy ấn nút đọc tiếp bài này để hiểu kĩ hơn nhé.

Tiếp tục đọc

Cài đặt OpenLiteSpeed tại Amazon EC2

Xin chào! Hôm nay mình sẽ bắt đầu kể về quá trình di dời trang web của mình sang dịch vụ Elastic Computing Cloud (EC2) thuộc Amazon Web Services.

Mình xác định sẽ sử dụng một phần mềm server nhẹ và nhanh nhất có thể tại đó. Trước đây mình từng cài đặt Apache và NGINX, mình thấy được một số ưu điểm và nhược điểm của chúng:

  • Apache: Rất linh hoạt trong việc sử dụng module, thiết lập quyền truy cập và viết lại (rewrite) đường dẫn theo từng cấp thư mục. Đối với những người đã quen với hosting chia sẻ (shared hosting), file .htaccess là một thứ vô cùng quen thuộc và đó là một file thiết lập của Apache áp dụng ở thư mục trong website. Tuy nhiên, Apache phục vụ nội dung tĩnh chậm. Có thể giải quyết nhược điểm này bằng cách tắt (ngừng kích hoạt) bớt module không sử dụng đến, nhưng cách đó không triệt để.
  • NGINX: Chỉ ở các bản mới đây (từ 1.9.11 trở đi), NGINX mới có thể kích hoạt module một cách linh hoạt giống Apache. Nó tỏ ra kém linh hoạt hơn Apache trong việc thiết lập quyền truy cập và viết lại đường dẫn, tất cả thiết lập đó đều phải được liên kết với file nginx.conf (cụ thể là liên kết qua dòng include), và chỉ được áp dụng sau khi khởi động lại NGINX. Bù lại, NGINX phục vụ nội dung tĩnh cực kì nhanh.
  • Cả hai đều có module đệm (cache) riêng, nhưng chưa có ai sử dụng các module đó cho việc lưu trữ tạm thời các kết quả xử lí của PHP hay các ngôn ngữ khác sử dụng trình thông dịch (Python, Ruby, JavaScript,…). May mắn là đối với PHP, người ta đã cung cấp một số gói mở rộng (extension) để ghi đệm các kết quả của nó như APC, OPcache, Memcached,… Hoặc, có một phần mềm cache độc lập tên là Varnish, cực kì tốt cho các server phục vụ nhiều nội dung thay đổi thường xuyên.

Nhưng trước mắt, mình mong muốn tìm được một phần mềm server chứa sẵn tất cả những ưu điểm của cả Apache và NGINX, hơn nữa lại có module cache hoạt động nhanh và linh hoạt như Varnish. Có một phần mềm server thực hiện được, đó là LiteSpeed. Nó được sử dụng ở một số dịch vụ hosting thay cho Apache. Nó có một phiên bản mã nguồn mở tên là OpenLiteSpeed, và mình mong đợi rất nhiều vào nó với khả năng mở rộng rất linh hoạt.

Tiếp tục đọc
  • 1
  • 2