Lần đầu tiên tôi học code, tôi không biết máy chủ là gì, máy chủ trông như thế nào và làm cách nào để sử dụng chúng. Trong nội dung bài viết này, tôi sẽ cố gắng cung cấp và giải thích cho các bạn những gì tôi đã biết về máy chủ, và tôi hy vọng khi kết thúc bài viết bạn sẽ có kiến thức tốt hơn về máy chủ, và sử dụng nó thành thục hơn. Hướng dẫn trong bài viết này hoạt động cho dù bạn đang sử dụng máy Mac, Linux, Windows 10.

Vậy sever là gì?

Bạn có thể đã đọc tất cả bài viết liên quan đến kỹ thuật máy chủ và được giải thích nó là gì, nhưng tôi muốn mô tả nó đơn giản như 1 máy tính luôn được kết nối internet. Điều này là do nó thường thực hiện các tác vụ cần kết nối internet, chẳng hạn như cung cấp các tệp tạo nên 1 trang web, và đó sẽ là nội dung chúng ta cần làm việc trong bài viết này. Khi một ai đó sử dụng trình duyệt của họ gửi yêu cầu tải trang web, yêu cầu đó được gửi đến 1 máy chủ cụ thể cho các tệp tạo nên trang web đó, máy chủ luôn được kết nối internet và luôn sẵn sàng cung cấp các tệp đó

Máy chủ không có gì đặc biệt ngoại trừ nó có những đặc điểm sau

  •   Nó luôn được kết nối internet
  • Nó luôn luôn nằm phía trên
  • Máy chủ được cấu hình để lắng nghe các yêu cầu và cung cấp đúng các file

Máy tính của riêng bạn có thể là 1 máy chủ, nếu thực sự bạn muốn điều đó

Trong thực tế, khi chúng ta cần 1 máy chủ thì thường có xu hướng đi thuê toàn bộ hoặc 1 phần của máy chủ, được lưu trữ cùng nhiều người khác trong 1 kho chứa máy chủ rộng lớn.

Máy chủ không có màn hình vì con người không cần tương tác với nó thông qua giao diện đồ họa dành cho người dùng. Vì vậy bạn có xu hướng thấy dữ liệu tải của nó đặt hiệu quả cùng 1 ngăn.

Vậy làm cách nào để có được 1 máy chủ và cấu hình cho nó?

Nếu bạn muốn có 1 máy chủ, bạn thường có xu hướng tìm đến các nhà cung cấp dịch vụ như Amazon Web Services , Google Cloud Platform hoặc Digital Ocean và cách thứ 2 là tự tạo cho mình 1 máy chủ.

Hãy tự tạo cho mình 1 máy chủ!

Hầu hết các nền tảng này đều có các lựa chọn sử dụng miễn phí cho người mới sử dụng hoặc hỗ trợ để người dùng trả rất ít phí cho nhu cầu thấp của khách hàng.

AWS cho phép người dùng sử dụng máy chủ nhỏ miễn phí trong vòng 1 năm, nhưng ngay cả khi bạn hết hạn sử dụng miễn phí trong 1 năm đầu chúng ta vẫn có thể sử dụng máy chủ trong thời gian ngắn mà chỉ tốn có vài xu.

Đăng ký AWS

Nếu bạn chưa đăng ký AWS, hãy tạo tài khoản ngay bây giờ! Bạn sẽ cần một thẻ tín dụng hoặc thẻ thanh toán quốc tế để đăng ký nhưng bạn đừng lo lắng vì nó hoàn toàn miễn phí.

Cung cấp 1 instance

AWS gọi các máy chủ là các "instances" vì về mặt kỹ thuật bạn không nhận được 1 máy chủ của riêng mình, mà bạn đang thuê "Không gian xử lý"  dựa trên công nghệ điện toán đám mây, nói cách khác máy chủ ảo chỉ là 1 lát nhỏ trên 1 mảnh của phần cứng.

Nhưng so với ý định và mục đích sử dụng của bạn, nó cho bạn cảm giác giống như máy chủ của riêng bạn và rẻ hơn rất nhiều so với việc bạn mua 1 máy chủ cho riêng mình

Đầu tiên hãy tìm dịch vụ có tên là EC2:

Sau đó tùy chọn để khởi chạy 1 instance:

Có nhiều loại instance bạn có thể lựa chọn, nhưng chỉ có 1 loại miễn phí bạn có thể chọn mà thôi. Hãy chọn kiểu Amazon Linux 2 AMI 1 instance mới nhất của Amazon chạy trên hệ điều hành Linux, hầu hết máy chủ hiện nay đều chạy trên hệ điều hành Linux

Trên trang tiếp theo hãy đảm bảo bạn đã chọn đúng kiểu AMI và nhận vào "Review and Launch":

Khi bạn được hỏi có sử dụng cặp khóa hiện tại hoặc tạo ra 1 cặp khóa mới, bạn hãy tạo 1 cặp khóa mới và tải nó về.

Instance của bạn sẽ mất một 1 chút thời gian để được cung cấp, và khi đó, bạn sẽ được truy cập vào bảng điều khiển EC2 và nhìn thấy danh sách các instance đang chạy của bạn, có thể chỉ có 1 instance đang chạy trong đó, trừ khi bạn đó có 1 số người chạy trước đó.

Kết nối với instance của bạn

Tôi đã giới thiệu ở trên là các instance không có màn hình, như thế thì chúng ta làm thế nào để vận hành chúng? Chúng ta sẽ truy cập nó từ xa và vận hành chúng thông qua các dòng lệnh, bằng cách kết nối với chúng với 1 dòng lệnh gọi là ssh. SSH (Secure Shell)  là một giao thức kết nối và vận hành máy tính từ xa an toàn trên mạng internet.

Khi chúng ta sử dụng ssh để kết nối với instance của mình, chúng ta phải chứng minh được thực sự có quyền kiểm soát instance của mình, điều này rất quan trọng ngăn chặn các truy cập bất hợp pháp để phá hoại máy chủ của ta, đặc biệt là các máy chủ có dũ liệu nhạy cảm, thông tin quan trọng như thường làm việc với dũ liệu khách hàng hoặc chi tiết thanh toán.

Khi tạo instance của bạn, bạn sẽ tải xuống 1 khóa riêng, khóa này khớp với khóa chung được lưu trữ bởi AWS. Chỉ chủ sở hữu của khóa riêng mới có thể kết nối với instance. Đây được gọi là xác thực khóa công khai và là 1 phương thức tiêu chuẩn xác thực máy tính từ xa.

Đầu tiên, di chuyển tệp khóa này ra khỏi thư mục tải xuống và lưu trữ ở 1 nơi an toàn nào đó, nếu bạn muốn sử dụng lại nó.

Sau đó, chúng tôi cần thay đổi các quyền trên tệp để làm cho chúng an toàn hơn:

chmod 400 my-first-key-pair.pem

Điều này có nghĩa chỉ người sở hữu nó mới được phép đọc.

Cuối cùng, đi đến bảng AWS EC2 và tìm địa chỉ ip công khai của instance:

Sau đó sử dụng IP để xây dựng câu lệnh bên dưới, hãy chắc chắn bạn cung cấp chính xác tệp chứng chỉ có đuôi .pemmà bạn vừa sửa đổi và thay thế địa chỉ ip của bạn là "34.244.187.6" cho ví dụ sau:

ssh -i my-first-key-pair.pem ec2-user@34.244.187.6

Khi được hỏi bạn có muốn tiếp tục nhập "yes" và nhấn enter.

Bây giờ bạn đã kết nối thành công với instance của bạn!

Nếu bạn sử dụng máy linux và bạn chưa kích hoạt được lệnh ssh được, bạn phải chạy các lệnh này trước đã

sudo apt update
sudo apt install openssh-server

Bây giờ dòng lệnh này sẽ được chạy:

ssh -i my-first-key-pair.pem ec2-user@34.244.187.6

Hãy nhìn xung quanh! Tạo 1 số tệp!

Bây giờ terminal của bạn có hành vi như thể terminal đang kết nối với EC2 instance. Nếu bạn ls và pwd, bạn sẽ thấy rằng nó không còn là máy tính của bạn nữa, hãy thoải mái tạo tệp và khám phá nó.

Không có tệp nào trong thư mục home của bạn vì đây là 1 phiên bản hoàn toàn mới nhưng bạn sẽ thấy nhiều tệp linux tiêu chuẩn nếu bạn chuyển đến thư mục root cd /.

Tạo instance của chúng ta phục vụ cho website

Nếu chúng ta muốn cấu hình instance phục vụ cho website, chúng ta có 1 số điều sau đây:

  1. Cho phép kết nối bằng giao thức HTTP, vì trình duyệt yêu cầu các trang web sử dụng giao thức HTTP và hiện tại instance của chúng ta chỉ cho phép kết nối SSH.
  2. Cấu hình một số phần mềm máy chủ sẽ yêu cầu HTTP bằng cách cung cấp các tệp
  3. Tạo các tệp này (hoặc đưa chúng vào máy bằng nào đó)

Hãy làm 3 điều này

  1. Cho phép lưu lượng tới instance của bạn

    Để cho phép lưu lượng web chúng ta cần cấu hình "security group" trong phần cài đặt của instance, click vào link "launch wizard" bên cạnh tiêu đề "Security Groups" trên bảng điều khiển EC2 

    Trên trang Security Groups hãy đảm bảo security group được tô sáng và sau đó chọn tab Inbound và nhấn Edit:

    Thêm quy tắc HTTP và để nguyên các giá trị mặc định được cung cấp. Điều này cho phép HTTP vào instance từ bất kỳ địa chỉ ip nào:

    Và sau đó save lại nhé!

  2. Cài đặt Apache

    Quay lại Terminal của bạn có phiên SSH của bạn đã được thiết lập với phiên bản, hãy chạy lệnh sau để cài đặt 1 phần mềm có tên là Apache. Apache là 1 phần mềm máy chủ đơn giản và cấu hình mặc định của nó cho phép nó phục vụ các tệp tĩnh cho 1 trang web khi instance đó nhận được yêu cầu HTTP trên cổng 80, tức là các yêu cầu từ trình duyệt hoặc các máy khách khác. 

    Chúng ta cũng có thể sử dụng trình quản lý package:

    yum 

    để cài đặt httpd, tên gói cho Apache, thật kỳ lạ.

    sudo yum install -y httpd
  3. Tạo một 1 số tệp

    Theo mặc định, Apache sẽ phục vụ các tệp được tạo trong thư mục /var/www/html/

    cd vào trong thư mục và khởi tạo 1 file index.html:

    cd /var/www/html

    sudo touch index.html

    Để chỉnh sửa tệp này, chúng tôi sẽ phải sử dụng trình chỉnh sửa dòng lệnh như Vim, vì chúng tôi không có giao diện người dùng đồ họa, do đó không có VSCode, v.v.

    sudo vi index.html

    Nếu trước đây bạn chưa sử dụng Vim, bạn cần chuyển chế độ chèn / lệnh bằng phím i để vào chế độ Chèn và phím Escape để vào chế độ lệnh.

    Khi ở chế độ chèn, hãy tạo tệp HTML của bạn và khi hoàn tất, hãy chuyển sang chế độ lệnh và nhập: wq để lưu và thoát.

Bước cuối cùng: Khởi động máy chủ

Chúng ta phải khởi động phần mềm máy chủ Apache bằng cách chạy:

sudo service httpd start

Truy cập trang web

Cuối cùng, chúng tôi sẽ có thể truy cập địa chỉ IP công khai của cá nhân trong trình duyệt và trang web sẽ được phục vụ!

Có nhiều cách khác để máy chủ có thể được cấu hình và máy chủ có thể làm nhiều hơn là phục vụ một ứng dụng web tĩnh - hầu hết thời gian chúng chạy một ứng dụng thực hiện một số logic bên cạnh việc phục vụ các tệp tĩnh và thường chúng không được sử dụng để phục vụ một ứng dụng web nào cả.

Tuy nhiên, tôi hy vọng đây là một cái nhìn sâu sắc hữu ích về một cách mà máy chủ có thể được cấu hình.

Ngắt kết nối instance của bạn

Để kết thúc phiên SSH của bạn, hãy nhấn tổ hợp phím ctrl + D trong thiết bị terminal. Bạn đã trở lại máy tính riêng của bạn.

Chấm dứt instance của bạn

Để tránh bị lãng phí, đừng quên chấm dứt instance của bạn khi bạn hoàn tất!

Bạn có thể làm điều này từ bảng điều khiển EC2 của AWS. Chấm dứt hoàn toàn instance, hoặc nếu bạn muốn quay lại nó sau, bạn có thể "Dừng" nó và khởi động lại nó trong tương lai. Một trường hợp dừng lại không tính phí.

nguồn https://dev.to/harri_etty/the-introduction-to-servers-i-wish-i-d-had-44jl