NGINX webserver

NGINX là một webserver mã nguồn mở ban đầu được thiết kế để giải quyết bài toán C10K (sử dụng kiến trúc hướng sự kiện, bất đồng bộ) thay cho Apache sử dụng kiến trúc tạo thread cho mỗi request.

Nhưng ngày nay NGINX còn được phát triển để dùng làm reverse proxy, HTTP load balancer và email proxy như IMAP, POP3, và SMTP.

Apache vs Apache Tomcat

Cũng hay tiếp xúc với phần này nhưng để nhìn nhận rõ xem sự khác nhau giữa Apache và Apache Tomcat thì mình chưa tìm hiểu kỹ.

Cả 2 phần mềm này đều được điều hành và phát triển bởi Apache Software Foundation. Nhưng cả hai đều là miễn phí và nguồn mở, chiếm phần lớn về thị phần webserver trên toàn thế giới.

Theo mình nắm được thì:

Apache là webserver hỗ trợ http và https, được sử dụng cho các website tĩnh (???) được viết bằng C dạng Module có hỗ trợ cho các ngôn ngữ lập trình để dựng ứng dụng như PHP, Python, Perl…

Apache Tomcat được viết bằng JAVA tạo riêng cho các app Java. Nó được coi là container chứa Servlet/JSP.

Apache là cơ bản, đa nền tảng, được sử dụng phổ biến nhưng hiệu suất khi có số lượng kết nối cùng lúc lớn thì kém hiệu quả. So với NGINX mới phát triển thì hiệu suất cao hơn nhiều, giải quyết được bài toán hàng chục ngàn kết nối cùng một lúc. Vấn đề hàng chục ngàn kết nối cùng lúc là vấn đề C10K.

DR testing – Disaster Recovery Testing

Lần đầu tiên mình nghe về DR test, đúng là từ trước đến nay chưa biết về khái niệm này. Đây là một phần công việc cho việc kiểm toán cuối năm của công ty.

DR testing viết tắt của Disaster Recovery Testing. Dịch ra tiếng việt là thử nghiệm khắc phục thảm họa. Phần này khá rộng đối với cả doanh nghiệp chứ không chỉ riêng trong các phần mềm của công ty.

Trong lĩnh vực phần mềm thì phần này nôm na là test các ứng dụng, server, cơ sở dữ liệu dự phòng xem có hoạt động tốt và đúng như hệ thống prod để chạy không. Việc này đáng lẽ ra là phải làm thường xuyên vì phần mềm và CSDL luôn được nâng cấp, do vậy đối với các phiên bản dự phòng thì luôn phải đảm bảo như trong PROD ít nhất là trước thời điểm sửa đổi.

Hàm tuyến tính và linear regression

Các bài toán có thể giải bằng linear regression là các bài toán có thể biểu diễn bằng một hàm tuyến tính.

Vậy hàm số tuyến tính là hàm số như thế nào? Hàm số tuyến tính là hàm số có dạng là một đường thẳng y=ax+b. Mở rộng ra ta có hệ phương trình tuyến tính là hệ phương trình có các phương trình là phương trình tuyến tính, hay nói cách khác là phương trình tuyến tính có nhiều hơn 1 biến.

Bởi vì nếu chỉ có 1 phương trình tuyến tính nhiều hơn 1 biến thì có vô số nghiệm, cần phần có các điều kiện hoặc nhiều hơn 1 phương trình tuyến tính thì mới có thể giải được.

Quay lại việc giải bài toán bằng LINEAR REGRESSION thì chỉ cần nó là hàm tuyến tính theo trọng số (w).

Khởi động app theo đặc quyền

Chuyện là hôm nay đồng nghiệp mình tiến hành thực hiện một số thao tác cập nhật một số file xml trong ứng dụng nhưng không được. Hệ thống báo không có quyền mặc dù việc này bình thường vẫn có thể làm được. Ứng dụng bên mình code bằng Java chạy trên webserver là tomcat. Qua kiểm tra thì thấy gần đây App Tomcat được khởi động lại bằng quyền root. Bình thường thì việc reset App Tomcat chỉ được thực hiện với quyền bình thường (không phải quyền root).

Lý giải điều này là do việc phân quyền trên Linux. Việc cài đặt hay reset app trên Linux với quyền khác nhau là khác nhau trên Linux. Khi reset bằng quyền root thì với các user khác sẽ gặp một số vấn đề về quyền khi truy cập một số file trên đó. Phần này mình chưa rõ lắm nhưng cần note lại để sau tìm hiểu thêm.

Cách khắc phục thì phải stop app Tomcat bằng quyền root và sau đó start bằng quyền vẫn hay sử dụng.

Nhưng trên window thì theo mình thấy không vấn đề gì cả.