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 Show Options +Indexes 2 (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. Khi đọc bài này, các bạn hãy chắc chắn rằng đã thiết lập xong listener và virtual host theo hướng dẫn mình đã viết rồi nhé. Bài này sẽ chỉ ra một số các thiết lập tại virtual host tương ứng với các dòng lệnh thiết lập hay dùng trong Options +Indexes 2: Ngoài ra còn có điều chỉnh về realm rất hay, được dùng để khoá một số thư mục nhất định, người dùng phải nhập username và mật khẩu mới truy cập được. Mình có viết một bài riêng về nó, cùng với các thiết lập về SSL. Bây giờ chúng ta hãy đi vào nội dung chính của bài. Các bạn cần thay đổi các thiết lập trên trong phần thiết lập virtual host của trang admin của OpenLiteSpeed. Sử dụng symlinkSymlink (symbolic link) trong các hệ điều hành Linux giống như shortcut trong Windows vậy. Một số mã nguồn cần làm việc với symlink để thống nhất các đường dẫn đến một số file hay dùng mà không cần phải thay đổi chúng trong các file thiết lập. Trong file Options +Indexes 2, người ta chỉ dùng một dòng đơn giản để kích hoạt symlink: Options +FollowSymLinks Nhưng đối với OpenLiteSpeed, các bạn sẽ mở tab Basic ứng với virtual host các bạn chọn, rồi nhìn vào dòng Follow Symbolic Link. Để sửa dòng này, các bạn ấn vào nút Edit ở bên phải bảng Security. Với dòng này các bạn chỉ cần quan tâm đến hai giá trị Options +Indexes 5 (có) và Options +Indexes 6 (không) thôi. Thiết lập chỉ mục (index)Khi trình duyệt phía người dùng yêu cầu nội dung từ một link không dẫn đến một file cụ thể nào, server sẽ trả về chỉ mục nằm ở thư mục tương ứng. Chỉ mục này có thể là danh sách file và thư mục con bên trong, hoặc là nội dung của file chỉ mục có sẵn. Thiết lập chỉ mục này nằm trong bảng Index Files của tab General. Trong bảng này có các dòng sau:
Lưu ý nhỏ rằng, bảng Index Files trên cũng có ở tab General thuộc mục Server Configuration. Nhưng ở đó không có dòng Use Server Index Files nhé. Trang thông báo lỗi tuỳ chọnỞ file Options +Indexes 2, người ta sử dụng dòng lệnh <MIME type>=<khoảng thời gian> 8 để thiết lập trang thông báo lỗi riêng. Đối với OpenLiteSpeed, việc này được thực hiện ở bảng Customized Error Pages trong tab General. Đây là một bảng liệt kê các đường dẫn tuỳ chọn cho các mã lỗi HTTP (chẳng hạn như mã lỗi 404 – không tìm thấy). Bảng này gồm có hai cột chính, ứng với các giá trị cần quan tâm:
Ở bên phải tiêu đề bảng này có một nút Add để bổ sung trang báo lỗi. Ở cuối dòng ứng với một trang lỗi có hai nút sửa và xoá. Expires (cache tại trình duyệt)Để tăng tốc tải trang trong những lần tiếp theo người dùng truy cập website, trình duyệt phía người dùng thực hiện lưu tạm thời (cache) các file đã tải (và được hiển thị nội dung) từ trước, trong một khoảng thời gian nhất định. Server có thể điều chỉnh hành vi này của trình duyệt đối với từng loại file. Ở file Options +Indexes 2, người ta thiết lập bằng các lệnh thuộc module application/=A2592000, image/=A31536000, video/=A31536000, audio/=A31536000, text/css=A2592000, text/javascript=A2592000, application/vnd.ms-fontobject=A31536000, font/*=A31536000 0 của Apache: application/=A2592000, image/=A31536000, video/=A31536000, audio/=A31536000, text/css=A2592000, text/javascript=A2592000, application/vnd.ms-fontobject=A31536000, font/*=A31536000 1, application/=A2592000, image/=A31536000, video/=A31536000, audio/=A31536000, text/css=A2592000, text/javascript=A2592000, application/vnd.ms-fontobject=A31536000, font/*=A31536000 2, application/=A2592000, image/=A31536000, video/=A31536000, audio/=A31536000, text/css=A2592000, text/javascript=A2592000, application/vnd.ms-fontobject=A31536000, font/*=A31536000 3. Còn đối với OpenLiteSpeed, tất cả nằm trong bảng Expires Settings thuộc tab General.
OpenLiteSpeed sử dụng cú pháp như sau dành cho khoảng thời gian:
Ví dụ: application/=A2592000, image/=A31536000, video/=A31536000, audio/=A31536000, text/css=A2592000, text/javascript=A2592000, application/vnd.ms-fontobject=A31536000, font/*=A31536000 8, có nghĩa là trình duyệt sẽ thực hiện cache file trong 2592000 giây (tức 30 ngày) kể từ khi trình duyệt gọi đến file đó. Đối với dòng Expires By Type, các bạn điền với cú pháp sau: <MIME type>=<khoảng thời gian> Trong đó các bạn thay cả application/=A2592000, image/=A31536000, video/=A31536000, audio/=A31536000, text/css=A2592000, text/javascript=A2592000, application/vnd.ms-fontobject=A31536000, font/*=A31536000 9 bằng một MIME type tương ứng với một loại file cụ thể. Các bạn có thể tham khảo thêm một trang của Mozilla để biết MIME type của một số file phổ biến. Để áp dụng cho nhiều loại file khác nhau, thì cứ hết một thiết lập cho MIME type này, các bạn gõ dấu phẩy ( <MIME type>=<khoảng thời gian> 0), rồi điền tiếp thiết lập cho MIME type khác. Và để đơn giản hoá việc áp dụng cho nhiều loại file, OpenLiteSpeed cho phép sử dụng dấu sao ( 192.168.1.24 3ffe:302:11:2:20f:1fff:fe29:717c
192.168.1.24 3ffe:302:11:2:20f:1fff:fe29:717c 2 để chỉ toàn bộ các loại file ảnh. Ví dụ ở Noisy Stream mà mình đang áp dụng: application/=A2592000, image/=A31536000, video/=A31536000, audio/=A31536000, text/css=A2592000, text/javascript=A2592000, application/vnd.ms-fontobject=A31536000, font/*=A31536000 Cho phép và chặn địa chỉ IPViệc này được thực hiện rất thường xuyên trong file Options +Indexes 2. Các dịch vụ hosting cũng thực hiện chặn IP thông qua việc chỉnh sửa file đó. OpenLiteSpeed dành riêng một bảng Access Control trong tab Security dành cho việc cho phép và chặn IP. Bảng này gồm hai danh sách sau:
Khi chỉnh sửa bất cứ danh sách nào trong bảng này, các bạn viết mỗi một địa chỉ IP ra một dòng riêng. Các bạn có thể điền bất cứ một địa chỉ IPv4 hoặc IPv6 nào. Ví dụ: 192.168.1.24 3ffe:302:11:2:20f:1fff:fe29:717c Riêng IPv6 có thể được viết trong cặp ngoặc vuông 192.168.1.24 3ffe:302:11:2:20f:1fff:fe29:717c 5. Thậm chí các bạn có thể điền cả một mạng con (sub-network) bắt đầu bằng một địa chỉ IP nhất định. Một số ví dụ được OpenLiteSpeed chấp nhận:
Tab Rewrite chính là nơi các bạn sử dụng các lệnh 192.168.1.24 3ffe:302:11:2:20f:1fff:fe29:717c 6 và 192.168.1.24 3ffe:302:11:2:20f:1fff:fe29:717c 7 vốn được sử dụng trong file Options +Indexes 2. Để có thể áp dụng các lệnh đó, trước hết chúng ta cần chỉnh lại dòng Enable Rewrite trong bảng Rewrite Control sang giá trị Options +Indexes 5 (có). Sau đó các bạn sẽ điền các lệnh 192.168.1.24 3ffe:302:11:2:20f:1fff:fe29:717c 6 và 192.168.1.24 3ffe:302:11:2:20f:1fff:fe29:717c 7 vào ô Rewrite Rules. Lưu ý là tại ô Rewrite Rules, chỉ có hai lệnh trên được chấp nhận xử lý. OpenLiteSpeed không chấp nhận bất cứ cú pháp nào khác không liên quan, kể cả các dòng đóng mở khối ( 192.168.1.0/255.255.255.0 192.168.1.0/24 192.168.1.* 2, 192.168.1.0/255.255.255.0 192.168.1.0/24 192.168.1.* 3, v.v…). Các lệnh được điền tại đây sẽ được áp dụng cho toàn bộ nội dung thuộc virtual host được điều chỉnh. Nếu muốn sử dụng các lệnh thiết lập khác, hoặc áp dụng cho một thư mục con cụ thể (cùng với file và thư mục con bên trong), thì tab Context được nhắc đến sau đây sẽ dành cho các bạn. ContextTab Context (phạm vi) trong phần cài đặt virtual host chính là nơi các bạn thực hiện các điều chỉnh cho từng vùng cụ thể (thư mục hoặc nhóm file). Tab này có duy nhất một bảng liệt kê các context, các bạn chú ý các nút như trong hình dưới. Khi ấn nút bổ sung một context, các bạn sẽ được đưa đến bảng New Context để chọn loại context. Tại đây các bạn cần quan tâm đến các loại context sau:
Sau khi chọn được loại context phù hợp, các bạn ấn nút Next ở bên phải tiêu đề bảng, để chuyển sang bảng thiết lập chi tiết cho loại context tương ứng. Khi các bạn tiến hành sửa một context, bảng này cũng sẽ xuất hiện. Tại đây, chú ý điền hoặc điều chỉnh đủ các dòng có đánh dấu sao ( 192.168.1.24 3ffe:302:11:2:20f:1fff:fe29:717c 1). Có một số dòng thiết lập mà các bạn cần quan tâm:
Sau khi chỉnh sửa xong thiết lập về context, các bạn hãy lưu lại context đó. Và như thường lệ, cứ mỗi lần thiết lập xong OpenLiteSpeed, chúng ta khởi động lại nó. Như vậy chúng ta đã biết cách thiết lập rewrite trong OpenLiteSpeed cùng với một số thiết lập khác mà chúng ta từng áp dụng bằng file Options +Indexes 2. Hi vọng bài viết này sẽ giúp ích cho các bạn chuyển đổi từ Apache sang OpenLiteSpeed. Các bạn có thể đọc tiếp về SSL và realm trong OpenLiteSpeed. Đó có thể là bài viết cuối cùng của mình về OpenLiteSpeed, trước khi mình thực hiện các thử nghiệm kết hợp nó với các phần mềm server khác. Thời gian tới mình có nhiều dự định thử nghiệm:
Mình sẽ không tập trung vào phân tích sâu về tốc độ, mà chủ yếu xem việc điều chỉnh tối ưu có dễ dàng không, và tính năng thực hiện được đến đâu. Có thể các bạn sẽ rất thích các thử nghiệm này đó! |