Cách cài đặt Nginx trên Ubuntu 16.04

2 năm trước

 

Giới thiệu về Nginx

Nginx là một trong những web servers phổ biến nhất trên thế giới, lưu trữ một trong số các trang web lớn nhất với lưu lượng truy cập cao nhất trên internet. Nó tiết kiệm tài nguyên hơn Apache trong hầu hết các trường hợp và có thể được sử dụng như một web server hoặc một reverse proxy..

Bài viết hướng dẫn cụ thể cách cài Nginx trên Ubuntu 16.04.

 

Yêu cầu

Để thực hiện quá trình cài đặt, bạn cần một non- root user với quyền sudo   trên server của mình. Nếu chưa có, hãy tham khảo cách tạo non-root user trên diễn đàn ViCloud.

Khi có tài khoản, đăng nhập để bắt đầu.

 

Bước1: Cài đặt Nginx

Nginx mặc định có sẵn trong Các gói của Ubuntu, nên ta chỉ cần cài đặt các gói có sẵn.

Trước hết phải update local package index để truy cập những package mới nhất. Xong đó tiến hành càinginx:

sudo apt-get update 
sudo apt-get install nginx 

 

Sau khi chấp nhận thủ tục, apt-get sẽ cài đặt Nginx và các gói đi kèm vào server của bạn.

Bước 2: Thiết lập firewall

Trước khi test Nginx, cần phải cấu hình lại firewall để cho phép truy cập vào dịch vụ. Nginx đăng ký chính nó như là một dịch vụ với ufw sau khi cài đặt nên việc cấu hình này khá dễ dàng.

Xuất ra danh sách ứng dụng ufw có thể hoạt động cùng bằng lệnh:

sudo ufw app list

Output:

OutputAvailable applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
 

3 profile của Nginx :

  • Nginx HTTP: Profile này chỉ mở cổng 80( cho những truy cập Web bình thường, không bị mã hóa)
  • Nginx Full: Profile mở cả cổng 80 và cổng 443 (cho phép cả những truy cập bình thường lẫn những truy cập mã hóa TLS/SSL)
  • Nginx HTTPS: Profile này chỉ mở cổng 443 ( chỉ cho phép những truy cập mã hóa TLS/SSL)

Thường thì hãy chọn profile sao cho lượng truy cập cho phép là ít nhất có thể. Ở đây, server đã được cấu hình SSL rồi nên ta chỉ cần cho phép cổng 80 bằng lệnh:

sudo ufw allow 'Nginx HTTP' 

 

Theo dõi thay đổi bằng lệnh:

sudo ufw status

Output:

OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere 
Nginx HTTP ALLOW Anywhere 
OpenSSH (v6) ALLOW Anywhere (v6) 
Nginx HTTP (v6) ALLOW Anywhere (v6)
 

Bước 3: Kiểm tra Web Server

Cuối quá trình cài đặt, Ubuntu khởi động Nginx, và server sẽ đang chạy

Kiểm tra bằng hệ khởi tạo systemd với lệnh:

systemctl status nginx 

 

Outputnginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2016-04-18 16:14:00 EDT; 4min 2s ago
Main PID: 12857 (nginx)
CGroup: /system.slice/nginx.service
├─12857 nginx: master process /usr/sbin/nginx -g daemon on; master_process on
└─12858 nginx: worker process
 

Như đã thấy ở trên, dịch vụ dường như đã khởi động thành công. Tuy nhiên, cách tốt nhất để kiểm tra là yêu cầu một trang từ Nginx.

Nếu bạn đang sử dụng Cloud Server của ViCloud và không có một domain name được thiết lập server của bạn, bạn có thể làm theo hướng dẫn làm thế nào để thiết lập một tên miền với ViCloud để thiết lập nó trên diễn đàn.

Nếu bạn không muốn để thiết lập domain name cho server của bạn, bạn có thể sử dụng public IP address của server. Nếu bạn không biết địa chỉ IP của máy chủ của bạn, vài lệnh sau có thể giúp bạn.

Gõ lệnh sau trên Command Prompt của server:

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

 

Bạn sẽ nhận lại một vài địa chỉ. Thử chúng trong trình duyệt web xem địa chỉ nào hoạt động.

Một cách khác là dùng lệnh này, nó sẽ cho bạn địa chỉ IP được thấy từ một nơi khác trên Internet

sudo apt-get install curl 
curl -4 icanhazip.com 

 

 

Khi có địa chỉ IP, nhập vào ô địa chỉ của trình duyệt:

http://server_domain_or_IP

Trang mặc định của Nginx được hiển thị:

Nginx default page

 

Bước 4: Quản lí tiến trình đang chay trên Nginx

Một vài lệnh quản lí tiến trình cơ bản được trình bày sau đây.

Dừng web server:

sudo systemctl stop nginx 

 

Tiếp tục tiến trình trên server khi đang dừng:

sudo systemctl start nginx 

 

Dừng xử lí rồi xử lí lại:

sudo systemctl restart nginx 

 

Cập nhật nhứng thay đổi cấu hình mà không ảnh hưởng đén các tiến trình đang chạy:

sudo systemctl reload nginx 

 

Mặc đinh, Nginx khởi động cùng với server. Nếu không muốn điều này xảy ra, dùng lệnh:

sudo systemctl disable nginx 

 

Để kích hoạt lại việc tự khởi động của Nginx, dùng lệnh:

sudo systemctl enable nginx

 

 

Bước 5:Làm quen với những file và thư mục quan trọng của Nginx

 

Sau khi cơ bản nắm được những lệnh quản lí server của Nginx, hãy đến với những File và thư mục quan trọng của Nginx

Content

  • /var/www/html: Những nội dung về web, mà mặc định chỉ chứa default page của Apache,được lưu bên ngoài /var/www/html . Thay đổi điều này bằng cách edit những file cấu hình của Nginx. 

Server Configuration

  • /etc/nginxĐường dẫn chứa toàn bộ file cấu hình của Nginx.
  • /etc/nginx/nginx.conf: File cấu hình chính của Nginx. Edit file này sẽ ảnh hưởng đến cấu hình toàn cục của Nginx.
  • /etc/nginx/sites-available/: Thư mục nơi per-site "Virtual Hosts" được lưu trữ. Nginx sẽ không sử dụng các tập tin cấu hình được tìm thấy trong thư mục này, trừ khi chúng có liên kết đến thư mục sites-enabled . Thông thường, việc cấu hình server block được thực hiện trong thư mục này, và sau đó kích hoạt bằng cách liên kết với các thư mục.
  • /etc/nginx/sites-enabled/: Thư mục nơi per-site "Virtual Hosts" đã kích hoạt được lưu trữ. Thông thường, chúng được tạo bằng cách liên kết với các file cấu hình được tìm thấy trong thư mụcsites-available
  • /etc/nginx/snippets: Chứa những phần cấu hình có thể được gọi từ bất cứ đâu trong thư mục /etc/nginx . Thường thì những phần cấu hình được lặp đi lặp lại sẽ được lưu trữ ở đây để tiết kiệm bộ nhớ.

Server Logs

  • /var/log/nginx/access.log: Mặc định, mọi yêu cầu đến web server của bạn được ghi lại trong file log này.
  • /var/log/nginx/error.log: Ghi lại tất cả lỗi xảy ra.
 

Tổng kết

Bây giờ bạn đã cài đặt web server của mình, bạn có nhiều lựa chọn cho các nội dung để phục vụ và các công nghệ mà bạn muốn sử dụng để tạo ra một trải nghiệm phong phú hơn.

Cảm ơn đã theo dõi bài viết tại cộng đồng IT ViCloud Community, vui lòng để lại comment bên dưới!