26/7/19

Tự cài đặt Let’s Encrypt SSL miễn phí trên VPS có DirectAdmin

Let’s Encrypt là một “certificate authority” mới, hỗ trợ cho các trình duyệt web. Họ giúp cho việc thiết lập chứng chỉ TLS với web server một cách dễ dàng. Và đặt biệt hơn Let’s Encrypt cung cấp chứng chỉ SSL hoàn toàn miễn phí.

14/8/18

Cách nhận biết VPS đang hoạt động trên nền tảng công nghệ nào!

Cách nhận biết VPS đang hoạt động trên nền tảng công nghệ nào!

I. Phân biệt và lựa chọn VPS

Máy chủ ảo (Virtual Private Server-VPS) là dạng máy chủ được tạo ra bằng cách phân chia 1 máy chủ vật lý thành nhiều máy chủ khác nhau có tính chất như một máy chủ riêng biệt (dedicated server), chạy dưới dạng chia sẻ tài nguyên từ máy chủ vật lý ban đầu).Máy chủ ảo được tạo ra bởi công nghệ ảo hóa, tùy thuộc vào công nghệ ảo hóa nào được sử dụng mà các máy chủ ảo có các tính chất chia sẻ tài nguyên khác nhau.

Top 10 lệnh xác định máy chủ Linux là máy chủ ảo (VPS)hay máy chủ vật lý (Dedicated Server)?

Khi các bạn quản lý một VPS/Cloud Server hoặc một máy chủ Linux được cung cấp. Có lẽ sẽ có lúc bạn cần kiểm tra máy chủ Linux của mình có phải ảo hoá (VPS) không? Hay là một máy chủ vật lý (dedicated server) đang hoạt động. Nếu là máy chủ ảo thì hệ thống đang được sử dụng công nghệ ảo hoá nào, có đúng như nhà cung cấp VPS/Cloud Server cấp máy chủ ảo Linux đã cam kết trước đó?! Vấn đề đơn giản này sẽ được hỗ trợ giải đáp thông qua Top 10 cách xác định máy chủ Linux ảo hoá hay máy chủ vật lý.

26/7/18

Các Cách Xem Nội Dung Của File trong Linux

Trên hệ điều hành Linux chúng ta có thể xem nội dung của file theo nhiều cách khác nhau như dùng các câu lệnh head, tail, more, less, cat hoặc grep... Mỗi cách có những ưu và nhược điểm riêng và việc lựa chọn cách nào hoàn toàn tùy thuộc vào yêu cầu cụ thể của việc xem nội dung file.

1. Xem Nội Dung File Dùng Câu Lệnh head

Câu lệnh head trong Linux cho phép chúng ta xem phần đầu nội dung của file, câu lệnh head có cú pháp như sau:

$ head <tên_file>

Ví dụ: $ head sample.txt

Theo mặc định câu lệnh head sẽ hiển thị 10 dòng đầu tiên có trong file với tên cho trước. Nếu muốn tùy chỉnh số lượng dòng sẽ được hiển thị bạn bạn có thể sử dụng tùy chọn -n trong câu lệnh như sau:

$ head -n <tên_file>

Ví dụ câu lệnh dưới đây:

$ head -20 sample.txt

Sẽ hiển thị 20 dòng đầu tiên trong file sample.txt.

2. Xem Nội Dung File Dùng Câu Lệnh tail

Ngược lại với câu lệnh head, câu lệnh tail trong Linux cho phép chúng ta xem phần cuối nội dung của file, câu lệnh tail có cú pháp như sau:

$ tail <tên_file>

Ví dụ: $ tail sample.txt
Theo mặc định câu lệnh tail sẽ hiển thị 10 dòng cuối cùng có trong file với tên cho trước. Nếu muốn tùy chỉnh số lượng dòng sẽ được hiển thị bạn bạn có thể sử dụng tùy chọn -n trong câu lệnh như sau:

$ tail -n <tên_file>

Ví dụ câu lệnh dưới đây:

$ tail -20 sample.txt

Sẽ hiển thị 20 dòng cuối cùng trong file sample.txt.

Câu lệnh tail đặc biệt hữu dùng trong trường hợp bạn muốn xem nội dung của các file log của chương trình vì thông thường với các file log này chúng ta chỉ muốn xem thông báo lỗi gần đây thay vì xem toàn bộ các lỗi. Các thông báo lỗi gần nhất thông thường sẽ được thêm vào phần cuối của nội dung file.

Ngoài ra, sử dụng tùy chọn -f trong câu lệnh tail cho phép chúng ta xem nội dung của file log theo kiểu thời gian thực (real time). Điều này có là câu lệnh này sẽ hiển thị các thay đổi trong nội dung file ngay khi chúng được tạo ra:

$ tail -f /var/log/apache2/my_site_access.log

Để thoát câu lệnh trong trường hợp trên bạn bấm tổ hợp phím Ctrl + C.

3. Xem Nội Dung File Dùng Câu Lệnh cat

Câu lệnh cat (viết tắt của concatenate) là một trong số những câu lệnh phổ biến được sử dụng để xem nội dung file trong Linux. Khác với head hay tail, câu lệnh cat sẽ hiển thị ra màn hình cửa sổ dòng lệnh toàn bộ nội dung của file. Câu lệnh này có cú pháp như sau:

$ cat <tên_file>

Ví dụ: $ cat sample.txt

Trong trường hợp nôi dung của tập tin sample.txt quá nhiều và bạn muốn dừng việc xem nội dung thì bạn có thể bấm tổ hợp phím Ctrl + C, hành động này chấm dứt qúa trình thực thi của câu lệnh .

Câu lệnh cat cho phép chúng ta xem nội dung của nhiều file cùng một lúc. Việc này được thực hiện đơn giản bằng cách liệt kê lần lượt tên của các file mà bạn muốn hiển thị nội dung:

$ cat file_1.txt file_2.txt file_3.txt

Một cách dùng phổ biến của câu lệnh cat đó là nối (gộp) nội dung của nhiều file với nhau thành một file duy nhất. Điều này được thực hiện thông qua sử dụng toán tử chuyển tiếp > trong Linux. Ví dụ như sau:

$ cat file_1.txt file_2.txt file_3.txt > new_file.txt

Câu lệnh trên sẽ gộp nội dung của 3 file là file_1.txt, file_3.txt và file_3.txt để tạo ra một file mới là new_file.txt.

4. Xem Nội Dung File Dùng Câu Lệnh less và more

Bạn cũng có thể xem nội dung file sử dụng một trong hai chương trình Less và More. Cả hai chương trình này đều hiển thị toàn bộ nội dung của file trên màn hình (hiển thị từng trang một và từ đầu tới cuối). Sự khác biệt giữa Less và More đó là Less cung cấp nhiều feature để giúp dễ dàng di chuyển giữa các phần khác nhau của nội dung file hơn More.

$ more <tên_file>
$ less <tên_file>

Để tìm kiếm văn bản hiển thị bởi Less bạn gõ phím / rồi nhập văn bản cần tìm kiếm và gõ Enter:

/Test

Ngoài ra, sử dụng chúng ta cũng có thể sử dụng toán tử pipe trong Linux (sử dụng ký tự |) để xem nội dung trả về từ một câu lệnh khác ví dụ:

$ php -m | less

5. Câu Lệnh grep

Câu lệnh grep cũng được sử dụng khá phổ biến với mục đích so sánh nội dung dạng văn bản trong file với một mẫu (pattern) cho trước. Cú pháp của câu lệnh grep như sau:


$ grep <pattern> <tên_file>

Trong đó <pattern> có thể là một biểu thức regular expression.

Ví dụ bạn có một file là file_1.txt với nội dung chứa dòng chữ Hello World 1 thì khi chạy câu lệnh:

$ grep 'Hello' file_1.txt

Bạn sẽ có kết quả như sau: Sử dụng câu lệnh grep trên một file. Chúng ta cũng có thể sử dụng grep trên nhiều file cùng một lúc:

$ grep 'Hello World' file_1.txt file_2.txt file_3.txt

Kết quả của câu lệnh trên sẽ như sau:


Sử dụng câu lệnh grep trên nhiều file

Ngoài ra một số bạn cũng thường sử dụng Vim hoặc Nano để xem nội dung file. Việc làm này hoàn toàn hợp lệ tuy nhiên cần lưu ý rằng cả vim và nano phù hợp với mục đích hiệu chỉnh văn bản của file hơn là xem nội dung file.

Xây dựng giải pháp Load Balancing và Fail Over toàn diện dành cho Web Server

Load Balancing và Fail Over toàn diện cho Web Server) Xây dựng giải pháp Load Balancing và Fail Over toàn diện dành cho Web Server  là một nhiệm vụ sống còn dành cho doanh nghiệp hiện nay. Đã có những trường hợp đáng tiếc khiến cho doanh nghiệp phải chịu những thiệt hại lớn không đáng có, thậm chí là mất đi các khách hàng quan trọng – nguồn sống trong kinh doanh.

Trong bài “Để website luôn online với cluster Apache High Availability Linux” đăng trên một số trang web hiện nay tuy thuận tiện nhưng vẫn còn những nhược điểm đáng kể. Một trong những nhược điểm đó là hệ thống chỉ có tác dụng chịu lỗi (Fail Over) mà không thể cân bằng tải (Load Balancing). Do đó, hệ thống chỉ có thể thích hợp với những doanh nghiệp nhỏ lẻ, nhu cầu truy cập web của khách hàng không cao. Nếu sử dụng phương thức trên cho doanh nghiệp lớn thì sẽ gây hiện tượng thắt cổ chai (bottle neck) làm nghẽn lưu lượng truy cập. Mặt khác, doanh nghiệp muốn triển khai thêm nhiều dịch vụ khác thì đây không phải là một lựa chọn thật sự hiệu quả.

Một giải pháp được Kênh Giải Pháp VN đưa ra là xây dựng một hệ thống có tính sẵn sàng cao vừa có khả năng chịu lỗi vừa có khả năng cân bằng tải. Giải pháp này dựa trên nền tảng Linux Virtual Server (LVS). LVS ẩn server thật sau một IP ảo và thực hiện quá trình cân bằng tải các gói tin gửi đến sang tất cả các node dựa trên thuật toán Scheduling. Do tất cả các quá trình được thực hiện ở lớp transport bên trong nhân Linux nên phương thức này còn được gọi là Layer-4 Switching.


Mô hình cụ thể

Hệ thống này được xây dựng trên 4 Server sử dụng hệ điều hành CentOS. Mỗi Server được lắp đặt 2 card mạng riêng biệt. Thông số về các card mạng trên mỗi server được thể hiện trên hình sau:

Client truy cập vào Web Server thông qua IP ảo (192.168.2.200).


Trong mô hình này LVS1 và LVS2 đóng vai trò là các Load Balancer (LB). Hai LVS này hoặc động theo phương thức Active/Passive. Có nghĩa là, khi LVS1 chạy thì LVS2 sẽ ở trạng thái Stand-by, cho đến khi LVS1 gặp sự cố thì LVS2 sẽ tự động kích hoạt và thay thế LVS1 cho đến khi khắc phục được sự cố. LB có nhiệm vụ dẫn đường cho các truy cập đến Web Server.

Trên LVS sẽ được cài đặt các gói chương trình heartbeat, ldirectord và ipvsadm. Trong đó chương trình heartbeat sẽ có nhiệm vụ kiểm tra tình trạng “sống còn” của hai LVS. Do đó, đảm bảo được khả năng chịu lỗi của hệ thống. Còn ldirectord (Linux Director Daemon) có nhiệm vụ giám sát và kiểm tra tín hiệu của các Web Server thông qua một URL request. Trong trường hợp dịch vụ web trên một server bị lỗi thì server đó sẽ bị loại ra khỏi danh sách real server và truy cập sẽ được dồn về Web Server còn lại đảm bảo được tính cân bằng tải lẫn khả năng chịu lỗi.

Cấu hình cụ thể

1. Đầu tiên, chúng ta tắt Firewall trên tất cả các Server.

/etc/init.d/iptables stop

+ LVS1/LVS2

2. Cài đặt các dịch vụ cần thiết (heartbeat, ldirectord, ipvsadm)

yum install heartbeat ipvsadm heartbeat-ldirectord –y

Để LB có thể dẫn đường được cho các yêu cầu đến server thì cần active kernel IPV4 packet forwarding.

#/etc/sysctl.conf
net.ipv4.ip_forward = 1

Lưu lại cấu hình cho sysctl.conf

sysctl -p

3. Tạo file /etc/ha.d/ha.cf

logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
initdead 120
bcast eth1
ucast eth1 10.0.0.1         # Trên LVS2 là 10.0.0.2
udpport 694
auto_failback on
node lb1.kenhgiaiphap.vn
node lb2.kenhgiaiphap.vn
Tạo file /etc/ha.d/haresoures
lb1.kenhgiaiphap.vn 
    ldirectord::ldirectord.cf 
    LVSSyncDaemonSwap::master 
    Ipaddr2::192.168.2.200

4. Tạo file /etc/ha.d/authkeys

auth 1
1 crc
File authkeys chỉ có thể thay đổi thông qua tài khoản root
chmod 600 /etc/ha.d/authkeys
Tạo file /etc/ha.d/ldirectord.cf
checktimeout=30
checkinterval=2
autoreload=yes
logfile=”/var/log/ldirectord.log”
quiescent=no
virtual=192.168.2.200:80
        real=10.0.0.3:80 gate
        real=10.0.0.4:80 gate
        service=http
        request=”kenhgiaiphap.html”
        httpmethod=GET
        receive=”maychumang”
        persistent=100
        scheduler=lblc
protocol=tcp
        checktype=negotiate

5. Khởi động các dịch vụ cần thiết

/etc/init.d/ldirectord stop
/ect/init.d/heartbeat start

+ WebServer1/WebServer2
Sau khi cài đặt Apache Server ta tạo file kiểm tra

echo “maychumang” > /var/www/html/kenhgiaiphap.html
Echo ‘This site is 192.168.2.122’ > /var/www/html/index.html (Webserver1)
Echo ‘This site is 192.168.2.123’ > /var/www/html/index.html (Webserver2)

service httpd start

Tắt chức năng ARP reply cho IP ảo trên Web Server

# /etc/sysctl.conf

net.ipv4.conf.all.ARP_ignore = 1
net.ipv4.conf.eth0.ARP_ignore = 1
net.ipv4.conf.all.ARP_announce = 2
net.ipv4.conf.eth0.ARP_announce = 2

6. Kiểm tra kết quả

Web Server (Load Balancing và Fail Over)

Mở web browser trên máy khác cùng mạng và nhập vào địa chỉ 192.168.2.200. Refresh lại nhiều lần thấy nội dung web thay đổi là cấu hình cân bằng tải thành công.

Muốn kiểm tra khả năng chịu lỗi thì tắt dịch vụ web trên 1 server sau đó thử lại. Nếu trang web hiển thị chuyển sang server còn lại là thành công.

Load Balancer (Fail Over)

Sau khi cài đặt xong kiểm tra trên cả hai LVS. Nếu kết quả giống như trong hình là cài đặt thành công. Trong đó máy 192.168.2.125 là máy Active, chịu trách nhiệm dẫn đường đến Web Server. Máy 192.168.2.130 đang ở chế độ backup.


Kiểm tra Fail Over bằng cách tắt dịch vụ heartbeat trên LVS1 (192.168.2.125) nếu bạn vẫn còn có thể duyệt web là thành công.

Lỗi 509 Bandwidth Limit Exceeded và cách khắc phục

Có bao giờ bạn vào một website, cụ thể hơn là diễn đàn và nhận được thông báo lỗi 509 Bandwidth Limit Exceeded không?

Cùng chúng tôi tìm hiểu về lỗi 509 Bandwidth Limit Exceeded  và cách khắc phục nhé!

Lỗi 509 Bandwidth Limit Exceeded là một thông báo cho biết hiện tại máy chủ (server) đã cạn băng thông (bandwidth ) trong gói host khi admin website mua.

Với người truy cập website khi gặp lỗi này phải sử lý như thế nào?

Bạn không thể làm gì cả ngoài việc chờ đợi admin website đó mua thêm bandwidth (băng thông) mới có thể truy cập. Trường hợp này thường gặp ở những website sử dụng hosting free hoặc mua theo bandwidth/month.

Với admin website?

Như đã nói ở trên lỗi 509 có thể hiểu là hết băng thông. Vậy nên nếu muốn truy cập bạn phải đợi đợt gia hạn của tháng sau (nếu dùng host free) hoặc trả tiền mua thêm bandwidth (nếu mua theo bandwidth/month)

Bạn cần liên hệ với phía cung cấp VPS hoặc host để mua thêm băng thông nhé!