Vai trò của Nginx đối với web app

Khi viết web app bằng các ngôn ngữ script như Python, Ruby, JavaScript (NodeJS) và triển khai lên server, ta hay được khuyên cho chạy web app của ta đằng sau Nginx, tức là Nginx sẽ đứng chắn giữa web app của ta và người truy cập. Mọi truy vấn web từ người dùng sẽ đi đến Nginx, và Nginx đóng vai trò của một reverse proxy, chuyển tiếp truy vấn đến web app.

Vậy Nginx làm công việc gì, ích lợi ra sao?

Giờ ta ví dụ với web app được viết bằng Django.

Giả sử ta không có Nginx, và để các request từ phía trình duyệt người dùng gửi đến thẳng web app. Ta biết rằng, phần lớn thời gian từ lúc trình duyệt gửi request đến lúc nhận được response là dành cho việc truyền tải nội dung, thời gian xử lý để sinh ra response chỉ chiếm một phần nhỏ. Giả sử web app chỉ phục vụ một request một lần, thời gian phục vụ mỗi request là 1s (bao gồm thời gian xử lý sinh ra nội dung 100ms và còn lại là thời gian truyền tải), thì trong 1 phút, web app chỉ phục vụ được 60 request. Chưa kể, khi ấy web app cũng phải phục vụ request những file tĩnh, như các file ảnh, JavaScript, CSS, vốn không phải là mục đích chính của web app. Web app là để sinh ra nội dung động. Nếu phải phục vụ cả các file tĩnh này thì số lượng phục vụ những request để nhận nội dung HTML bị rút gọn lại rất ít. Khi ta mở một trang web, thường request nội dung HTML là 1, trong khi request file tĩnh kể trên có thể là 10, và thường file tĩnh nặng hơn nội dung HTML động nên thời gian truyền tải cũng lớn hơn, có thể tới 2s. Như vậy, với cách cài đặt như trên, 1 phút web app chỉ phục vụ 3 - 6 khách. Nếu có 1 vài khách ở xa, hay đường truyền chậm, vì khách này cũng ngốn mất thời gian của web app. Số lượng phục vụ lại càng giảm.

Thái độ của Malaysia đối với mại dâm

Mấy bữa nay, nhân có chuyện có người đề nghị hợp pháp hóa mại dâm ở Việt Nam, hoặc thành lập một khu riêng cho việc hành nghề này, mình xin kể một xíu về mại dâm ở Malaysia, với tí hiểu biết mà mình có được (mình không phải nhà báo nên không có khả năng điều tra sâu rộng kĩ càng).

Pudu prostitute GRO

Trước hết, mại dâm ở Malaysia là bất hợp pháp. Các chiến dịch truy quét các điểm có mại dâm vẫn xảy ra thường xuyên, và được quay lại thành video phát công khai. Có 1 kênh riêng, MKL Crimedesk, trên Youtube để đăng video này. Các chiến dịch truy quét này được gọi lóng là "gió" (wind). Khi nói "dạo này gió to quá", nghĩa là đang có chiến dịch lớn, "gió vừa quét qua khu XX" nghĩa là "công an vừa bắt ở khu XX".

New nginx makes PHP website return blank page

Recently, I upgraded Nginx in this server and after some days, I discovered that one of my PHP websites (for internal use) was not working! It just returned completely blank page (no text or HTML source), even with the script containing only phpinfo().

At first, I didn't know that it was caused by Nginx, or it is because of upgrading Nginx. I tried to look in to various log files, from Nginx's to php5-fpm but did not see anything. I configured PHP to always display error, still no help. Searching around, I found that someones in Internet also get this phenomenon, after upgrading Nginx. Some suggests to change Nginx's virtual host configuration (the files in /etc/nginx/sites-available/). So I understand that new Nginx may bring changes that old configuration file will not be compatible!

But, then there is a question: How do I know how the configuration should be, to be working with upgraded Nginx?

Well, I've just noticed that Nginx installation on Ubuntu comes with some sample in snippets/ folder:

Logo vui

Issue after upgrading to Ubuntu 15.10

Today, I upgrade my Ubuntu installation to version 15.10 (Wily Werewolf), by fresh installing from ISO.

Wily Wererwolf

Some good things:

  • System Log application is no longer crash. It was useless in Ubuntu 15.04