Nginx là 1 trong những Web Server phổ biến, được sử dụng trong nhiều hệ thống máy chủ Web trên thế giới. Bản thân website vinasupport.com cũng đang sử dụng Nginx để làm máy chủ Web. Bài viết này sẽ giới thiệu, hướng dẫn cài đặt chi tiết trên Linux, cấu hình, config và sử dụng Nginx.
Nginx là gì?
Nginx là một Web Server nhẹ, mạnh mẽ và sử dụng kiến trúc đơn luồng, hướng sự kiện vì thế nó sử dụng tài nguyên hợp lý hơn Apache Server. Vì vậy nó thường được sử dụng phổ biến với các nhiệm vụ như là Load Balancing, HTTP caching, hay sử dụng như một Reverse Proxy.
- Tác giả: Igor Sysoev
- Phát triển bởi Nginx, Inc.
- Phát hành lần đầu vào 04/10/2004
- Phiên bản ổn định: 1.16.1 (13/08/2019) ở thời điểm viết bài này
- Repository: hg.nginx.org/nginx
- Ngôn ngữ lập trình: C
- OS: BSD variants, HP-UX, IBM AIX, Linux, macOS, Solaris, Windows
- Loại phần mềm: Web server, reverse/mail proxy server
- Website: nginx.org
Cài đặt Nginx Web Server
Để cài đặt Nginx Web Server sử dụng lệnh sau:
# Trên CentOS / RHEL / Fedora sudo yum install -y nginx # Trên Ubuntu / Debian / LinuxMint sudo apt install -y nginx
Khởi động và cho phép khởi động khi boot hệ điều hành
sudo systemctl start nginx.service sudo systemctl enable nginx.service
Kiểm tra Service đã hoạt động chưa.
sudo systemctl status nginx.service
Mặc định tường lửa trên HDH sẽ chặn cổng 80 của Nginx, để mở cổng chúng ta sử dụng lệnh sau:
# Trên CentOS / RHEL / Fedora sudo firewall-cmd --zone=public --add-port=80/tcp --permanent sudo firewall-cmd --reload # Trên Ubuntu / Debian / LinuxMint sudo ufw allow 'Nginx Full'
Mở trình duyệt và truy cập với đường dẫn http://<Hostname hoặc IP Address> mà hiển thị trang “Test Page” của Nginx thì chúng ta đã cài đặt thành công.
Các lệnh cần thiết để quản lý
Kiểm tra cú pháp file cấu hình
sudo nginx -t
Reload lại file cấu hình
sudo nginx -s reload
Mở file log
sudo nginx -s reopen
Cấu hình Nginx Web Server
Danh sách file và thư mục quan trọng
- /etc/nginx/nginx.conf: File config chính
- /etc/nginx/conf.d: Thư mục chưa các file config của riêng bạn
- /etc/nginx/sites-available: Thư mục chưa các file config VirtualHost, cho phép chúng ta cấu hình riêng biệt cho từng website
- /etc/nginx/sites-available/default: File config Virtual Hosts mặc định
Cấu hình Virtual Hosts
Để cấu hình Virtual Hosts, các bạn vui lòng tham khảo bài viết được viết rất chi tiết ở đây: Hướng dẫn cấu hình Virtual Hosts trên Nginx
Cấu hình Log
Thông thường, log của Nginx được lưu ở trong thư mục /var/log/nginx gồm có 2 file là:
- access.log: Lưu lại thông tin truy cập tới Web Server
- error.log: Lưu lại thông tin lỗi
Để thay đổi đường dẫn 2 file này chúng ta sửa 2 tham số là error_log và access_log trong file /etc/nginx/nginx.conf:
http { ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; }
Bạn có thể thêm 2 tham số này vào cấu hình virtualhost để đặt đường dẫn file log riêng biệt cho từng website.
Cấu hình gzip
Gzip là phương pháp nén dữ liệu trả về của server, giúp giảm tải thời gian tải tài nguyền từ server về client.
Để bật gzip trên Nginx chúng ta sửa file config /etc/nginx/nginx.conf
http { ## # Gzip Settings ## gzip on; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; }
Cấu hình Reverse Proxy trên Nginx
Vui lòng tham khảo bài viết: Cấu hình Reverse Proxy (proxy_pass) trên Nginx
Nguồn: vinasupport.com