Hướng dẫn cài đặt Nginx trên Ubuntu 20.04
Trong bài viêt này mình sẽ hướng dẫn các bạn cách cái đặt Nginx trên Ubuntu 20.04.
Ở bài viết trước, mình đã hướng dẫn mọi người cách cài đặt và thiết lập cấu hình Web Server Apache trên Ubuntu 20.04. Vậy thì ở bài viết này mình sẽ hướng dẫn thêm một phần mềm tạo web server khác có tên là Nginx. Nhưng trước khi bắt đầu cài đặt thì ta phải tìm hiểu Nginx là gì đã nhé.
1. Nginx là gì?
Nginx được gọi theo cách phát âm là "engine x" là một máy chủ Reserse Proxy, HTTP cache và là bộ đệm cân bằng tải.
Một số công ty, tập đoàn nổi tiếng sử dụng Nginx bao gồm Autodesk, Atlassian, Intuit, T-Moblie, GitLab, DuckDuckGo, Microsoft, IBM, Citrix Systems, Twitter, Apple, Intel, vv....
Bài viết này được đăng tại [free tuts .net]
Nginx ban đầu được tạo ra bởi Igor Sysoev, với bản phát hành công khai đầu tiên vào tháng 10 năm 2004. Ban đầu nhà phát hành quan niệm phần mềm này như một câu trả lời cho vấn đề C10k, một vấn đề liên quan đến xử lí 10.000 kết nối đồng thời.
Vì nguồn gốc của nó là tối ưu hóa hiệu suất theo quy mô, nên Nginx thường vượt trội hơn các Web Server khác trong các bài kiểm tra chuẩn, đặc biệt với các Website chạy tĩnh có tính đồng thời cao.
2. Lưu ý trước khi cài đặt Nginx trên Ubuntu
Bạn phải đăng nhập với tư cách là người dùng có đặc quyền sudo và bạn không dùng dịch vụ của Apache hoặc bất kì Web Server nào đang chạy trên cổng 80 (HTTP) hoặc 443 (HTTPS).
Nếu bạn đang dùng Apache, hãy kiểm tra trạng thái dịch vụ của nó xem có đang chạy không bằng cách nhập lệnh sau :
sudo service apache2 status or sudo systemctl status apache2
Nếu nó đang ở trạng thái active, hãy dừng nó lại bằng lệnh sau :
sudo service apache2 stop
Mình khuyên là nên xóa hẳn dịch vụ của Apache nhé, lí do mình sẽ nói ở những bài viết sau. Xóa dịch vụ của Apache bằng cách sử dụng lệnh sau:
sudo apt-get remove apache2*
Tìm xem còn thư mục của Apache ở đâu và xóa nốt :
whereis apache2
Như ở máy mình, nó đang lưu ở thư mục /etc/apache2.
Sử dụng tiếp lệnh sau để xóa thư mục này :
sudo rm -rf /etc/apache2
Kiểm tra lại xem còn ở thư mục nào không :
whereis apache2
Kiểm tra lại xem dịch vụ còn chạy không :
sudo service apache2 status
Nếu nó như màn hình của mình thì chúng ta xóa thành công nhé.
3. Các bước cài đặt Nginx trên Ubuntu
Các gói Nginx có sẵn trong kho lữu trữ của Ubuntu, để được cập nhật bản Ngnix mới nhất thì chúng ta phải update Ubuntu lên mới nhất sau đó mới tải bằng cách nhập lệnh sau :
sudo apt update sudo apt install nginx -y (tự động yes)
Sau khi cài đặt xong, chúng ta kiểm tra trạng thái của nó xem có đang chạy hay dừng bằng lệnh :
sudo systemctl status nginx or sudo service nginx status
Nếu nó có trạng thái là active như trong ảnh tức là nó đang chạy.
Vậy là bạn đã cài đặt Nginx thành công.
4. Thiết lập tường lửa giúp bảo mật Nginx
Mình hiện tại đang sử dụng dịch vụ UFW để quản lí Firewall của mình, bạn cần mở các cổng HTTP (80) và HTTPS (443). Mình sẽ bật cấu hình 'Nginx HTTP' bao gồm các quy tắc cho một cổng bằng lệnh sau :
Kiểm tra trạng thái dịch vụ của nó :
sudo service ufw status
Sau đó nhập lệnh:
sudo ufw allow 'Nginx HTTP'
Sau đó kiểm tra trạng thái của nó xem đã hoạt động chưa bằng lệnh:
sudo service ufw status
Nó đã hoạt động.
Nếu bạn muốn mở hai cổng 80 và 443 thì thay cái "Nginx HTTP" bằng "Nginx Full" nhé.
Lưu ý: Khi bạn lần đầu tiên cài đặt UFW thì nó sẽ mặc định trạng thái là disable, nó sẽ thể hiện khi bạn kiểm tra trạng thái của UFW và nó báo "inactive". Để bắt đầu sử dụng, bạn nhập lệnh sau :
sudo ufw enable
5. Kiểm tra xem đã cài đặt Nginx thành công chưa
Để kiểm tra xem nó đã hoạt động hay chưa, bạn lên Browser nhập địa chỉ sau : http://YOUR-IP/
.
Cách xem IP của bạn trên Linux, bạn nhập lệnh sau trên terminal :
ifconfig
Vì mình không thể show IP ra nên nếu màn hình Browser hiện ra như vậy thì bạn đã thiết lập thành công.
6. Các lệnh quản lí dịch vụ Nginx trên Ubuntu
Dưới đây là một số lệnh thường dùng đùng để quản lý dịch vụ Nginx trên Linux nói chung và Ubuntu nói riêng.
Để dừng dịch vụ, bạn nhập lệnh sau :
sudo service nginx stop or sudo systemctl stop nginx.
Để khởi động lại dịch vụ, bạn nhập lệnh sau :
sudo service nginx restart or sudo systemctl restart nginx.
Để tắt/mở dịch vụ, bạn nhập lệnh sau :
sudo service nginx disable/enable.
7. Nên sử dụng Nginx hay Apache?
Apache là máy chủ HTTP mã nguồn mở trong khi Nginx là Web Server không đồng bộ mã nguồn mở, hiệu suất cao và là Proxy Reverse.
Sửa lỗi, hỗ trợ, bảo trì và phát triển ứng dụng trong máy chủ Apache HTTP được quản lí và duy trì bởi cộng đồng người dùng trên khắp thế giới và được điều phối bởi Apache Software Foundation trong khi Nginx được xử lí bởi một công ty cùng tên được thành lập vào năm 2011.
Sự khác biệt chính giữa cả hai là cách họ xử lí yêu cầu của khách hàng. Trong khi Apache cung cấp nhiều mo-đun đa xử lí khác nhau để xử lí các yêu cầu của khách hàng và lưu lượng truy cập web, thì Nginx được thiết kế để xử lí đồng thời nhiều yêu cầu của khách hàng với tài nguyên phần cứng tối thiểu.
Trong Apache, một luồng chỉ được liên kết với một kết nối, trong khi một luồng trong Nginx có thể xử lí được nhiều kết nối. Tất cả các quá trình được đặt trong một vòng lặp sự kiện cùng với các kết nối khác và được quản lí không đồng bộ. Quá trình này tiêu tốn ít bộ nhớ hơn, do đó nó được tăng hiệu suất.
Apache HTTP Server có kiến trúc đa luồng thiếu khả năng mở rộng. Trong khi Nginx tuân theo phương pháp tiếp cận hướng sự kiện không đồng bộ để xử lí nhiều yêu cầu của khách hàng. Kiến trúc hướng sự kiện của nó được thiết kế để tạo điều kiện hoạt động tốt hơn ngay cả khi băng thông bị tắc nghẽn.
Máy chủ Apache phục vụ nội dung tĩnh bằng các phương pháp thông thường và xử lí nội dung ngay trong chính máy chủ web. Mặt khác, Nginx không thể xử lí nội dung động trong nội bộ. Nó dựa vào các quy trình ngoài để thực thi.
Hi vọng những cái mình phân tích nhanh dựa theo những Website uy tín mà mình tìm hiểu được sẽ giúp các bạn lựa chọn được một Web Server để phục vụ mục đích của mình. Như vậy qua đó mình đã hướng dẫn cách tải về và sử dụng Nginx Server cơ bản và đánh giá nhanh sự khác biệt giữa Apache và Nginx cho các bạn.