Hướng dẫn cài đặt Nginx trên Ubuntu Server 20.04

Hướng dẫn cài đặt Nginx trên Ubuntu Server 20.04

Giới thiệu

Hiện nay, NginxApache đang là hai web server phổ biến nhất.Có rất nhiều bài viết so sánh giữa ApacheNginx, mỗi ứng dụng đều có điểm mạnh và điểm yếu riêng. Ví dụ như: Nginx tốt hơn Apache với nội dung tĩnh, nhưng hiệu năng thấp hơn với nội dung động. Và Nginx nổi bật với một số tính năng nâng cao(media streaming, reverse proxying for non-HTTP protocols)...

Mình không đề cập đến đâu là web server tốt hơn, mà cá nhân mình lựa chọn cài đặt và sử dụng đồng thời ApacheNginx. Trong đó Apache sẽ làm web server chính cho các ứng dụng web cần sử dụng PHP hay cấu hình .htaccess, ngoài ra mình còn sử dụng NodeJS, vì vậy mình sẽ để Nginx làm Reverse Proxy cho cả ApacheNodeJS.

Yêu cầu

Trong bài viết này, chúng ta sẽ cài đặt Nginx trên máy chủ Ubuntu 20.04LTS đã cài đặt theo "Hướng dẫn cài đặt Ubuntu Server 20.04".

Tiến hành cài đặt

Cập nhập các gói mới nhất

sudo apt update
sudo apt upgrade

Cài đặt nginx

sudo apt install nginx

Nhập Y để xác nhận rằng bạn muốn cài đặt Nginx. Sau khi cài đặt xong, máy chủ web Nginx đã hoạt động. Kiểm tra Nginx đã chạy hay chưa bằng lệnh

sudo systemctl status nginx

Nếu hiển thị "Active: active (running)" là Nginx đã hoạt động OK rồi đó

Nếu hiển thị "Active: inactive" thì bạn khởi động Nginx lên

sudo systemctl start nginx

Nếu như bạn đã cài đặt Apache ở bài trước thì Apache hiện đang dùng cổng 80, mà Nginx cũng dùng cổng 80 vì vậy sẽ không thể khởi động được Nginx. Nếu vậy bạn tạm thời hãy ngừng Apache đi.

sudo systemctl stop apache2

Nếu bạn đã bật tường lửa, bạn sẽ cần cho phép Nginx kết nối. Để kiểm tra cấu hình UFW nào khả dụng, hãy chạy:

sudo ufw app list

Bạn nên bật cấu hình hạn chế nhất cho phép lưu lượng truy cập mà bạn cần. Vì chưa cấu hình SSL cho máy chủ của mình nên bạn sẽ chỉ cần cho phép lưu lượng HTTP thông thường trên cổng 80.

sudo ufw allow 'Nginx HTTP'

Kiểm tra sự thay đổi này bằng cách

sudo ufw status

Khởi động lại tưởng lửa

sudo ufw reload

Bây giờ bạn có thể truy cập vào web thông qua địa chỉ
http://your_server_ip

và hiện lên trang web như này, vậy là đã cài thành công Nginx rồi đó

Nếu bạn không biết địa chỉ IP máy bạn, có thể sử dụng một số cách sau đây để tìm

ip a

hoặc là

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

trong đó eth0 là tên card mạng của bạn

★ Chú ý

Ở bài trước, các bạn đã cài đặt thành công Apache, MariaDB, PHP trên Ubuntu server. Trong bài này, chúng ta đã cài đặt thành công Nginx. Tuy nhiên, Nginx và Apache đều cùng chạy trên cổng 80. Do đó, để cấu hình Nginx là Reverse Proxy thì tất cả các truy cập đến trang web của bạn đều thông qua cổng Nginx rồi mới đến các ứng dụng khác. Vì vậy, chúng ta sẽ đổi cổng mặc định của Apache đi.

Đổi port trong file cấu hình Apache

sudo nano /etc/apache2/ports.conf

và sửa dòng "Listen 80" thành "Listen 8888"

Listen 8888

Đổi port ở VirtualHost của Active

sudo nano /etc/apache2/sites-available/000-default.conf

Đổi dòng <VirtualHost *:80> thành <VirtualHost *:8888>, ví dụ mình muốn sử dụng cổng 8888

#Đổi thành cổng mà bạn muốn sử dụng
<VirtualHost *:8888>

Mở cổng 8888 trên Firewall

sudo ufw allow proto tcp from any to any port 8888

Khởi động lại Firewall, khởi động lại Apache, kiểm tra Apache đã hoạt động ở cổng 8888 chưa bằng cách truy cập vào http://your_server_ip:8888

Kết luận

Như vậy, chúng ta đã cài đặt thành công Nginx trên Ubuntu server. Đồng thời cũng đổi cổng Apache sang cổng khác. Trong những bài tiếp theo, mình sẽ hướng dẫn cách cấu hình SSL cho Nginx và dùng Nginx làm Reverse Proxy cho Apache cũng như NodeJS, phpMyAdmin.
Nếu có khó khăn hay có câu hỏi gì hãy đừng ngại ngần mà viết comment ở phần bên dưới nhé.