- vừa được xem lúc

Tìm hiểu về Nginx (phần 2)

0 0 40

Người đăng: Kiên

Theo Viblo Asia

Như vậy là ở bài trước mình đã giới thiệu tổng quan về Nginx, giúp chúng ta hiểu được Nginx là gì, ứng dụng và ưu điểm của nó ra sao. Ở bài này mình sẽ tiếp tục đi vào phần cài đặt và cấu hình Nginx cho 1 project trên nền hệ điều hành ubuntu 20. Chúng ta cùng đi vào bài thôi.

Cài đặt

Trên Ubuntu / Debian / LinuxMint ta sử dụng câu lệnh sau

sudo apt-get update
sudo apt-get install nginx

Chúng ta có thể kiểm tra xem Nginx đã được cài đặt thành công hay chưa bằng câu lệnh

nginx -v

Để Nginx có thể khởi động cùng lúc với boot hệ điều hành :

sudo systemctl start nginx.service
sudo systemctl enable nginx.service // khởi động cùng hệ điều hành (mặc định)
sudo systemctl disable nginx // không khởi động cùng hệ điều hành

Mặc định tường lửa trên HDH sẽ chặn các cổng của Nginx, đổi với dịch vụ web các bạn chỉ cần mở port 80 cho giao thức HTTP và port 443 cho giao thức HTTPS:

sudo ufw allow http
sudo ufw allow https

hoặc nếu cần mở tất cả các cổng

sudo ufw allow 'Nginx Full'

Kiểm tra trạng thái của Nginx :

service nginx status

Một số lệnh quan trọng khác :

sudo systemctl start nginx //khởi động Nginx
sudo systemctl stop nginx //dừng Nginx
sudo systemctl restart nginx // ngắt connect và khởi động lại Nginx
sudo systemctl reload nginx // giữ nguyên connect và khởi động lại Nginx

Ngoài ra còn nhiều lệnh khác mà mình sẽ đề cập tới trong phần sau.Tiếp theo chúng ta sẽ đi tìm hiểu danh sách file và thư mục quan trọng nằm trong /ect/nginx/ Trong các tệp ở trên ta chỉ cần đặc biệt chú ý đến :

  • nginx.conf: File config chính, chịu trách nhiệm tải nhiều tệp khác trong thư mục cấu hình
  • sites-available: 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
  • conf.d: chứa các file config của riêng bạn, lưu trữ Server Block của mỗi trang web

Cấu hình

Bây giờ hãy thử vào nginx.conf để xem có gì nào

cat nginx.conf

gõ lệnh trên để vào file và chúng ta sẽ thấy

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf; events { worker_connections 768; # multi_accept on;
} http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # SSL Settings ## ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE ssl_prefer_server_ciphers on; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # 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; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*;
} #mail {
#	# See sample authentication script at:
#	# http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# #	# auth_http localhost/auth.php;
#	# pop3_capabilities "TOP" "USER";
#	# imap_capabilities "IMAP4rev1" "UIDPLUS";
# #	server {
# listen localhost:110;
# protocol pop3;
# proxy on;
#	}
# #	server {
# listen localhost:143;
# protocol imap;
# proxy on;
#	}
#} 

Tệp xây dựng theo cấu trúc lồng nhau nên các cấu hình lớp trong có thể kế thừa từ cha mẹ của chúng và nó cũng có khả năng ghi đè theo nhu cầu của bạn. Hãy chú ý đến

  • worker_processes: Xác định số lượng worker process mà Nginx sẽ sử dụng. Do Nginx là single thread cho nên con số này thường bằng với số core của CPU
  • worker_connections: Đây là số lượng kết nối tối đa tại một thời điểm cho mỗi worker process và cho biết worker process có bao nhiêu người dùng có thể được phục vụ đồng thời bởi Nginx. Con số này càng lớn thì số lượng người dùng được Nginx phục vụ sẽ càng cao.

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;
}

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 , giúp hiệu suất được nâng cao.

Để 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;
}

Đến đây còn 1 phần đó là cấu hình Virtual Hosts, mình sẽ trình bày chi tiết hơn trong 1 bài viết khác. Nếu có thay đổi config thì đừng quên chạy lệnh này để thực thi các thay đổi đó nha

sudo service nginx reload hoặc sudo systemctl reload nginx

Bài viết mới chỉ giới thiệu việc cấu hình Nginx ở mức độ cơ bản, mời các bạn qua đây để xem cách cấu hình chi tiết và nâng cao hơn. Hy vọng bài viết sẽ giúp ích cho việc cài đặt và cấu hình Nginx của các bạn. Cám ơn đã đọc bài viết của mình ^^.

Bình luận

Bài viết tương tự

- vừa được xem lúc

MOSH: Kẻ hủy diệt SSH

Lời nói đầu. Lời đầu tiên xin được xin chào cả nhà, đã lâu lắm rồi mình không viết blog nay May Fest mà người iu mình thích cái áo viblo quá nên xin phép nổ phát súng trên Viblo về Mosh - thứ khá hay

0 0 138

- vừa được xem lúc

Vòng đời và trạng thái của Thread

A. Giới thiệu.

0 0 139

- vừa được xem lúc

Giải quyết vấn đề N+1 trong quan hệ cha - con vô tận bằng Eager Loading

Vấn đề. Trong khi phát triển ứng dụng, chắc hẳn các bạn đã gặp phải trường hợp đệ quy cha-con trong khi phát triển các dự án, ví dụ như cây thư mục như sau:.

0 0 182

- vừa được xem lúc

Bạn tổ chức thư mục views cho các dự án Laravel như thế nào?

Hầu hết các ứng dụng Laravel có rất nhiều views. Một ứng dụng nhỏ sẽ không xảy ra vấn đề gì cả, tuy nhiều nếu dự án lớn dần theo thời gian, chúng ta sẽ gặp bế tắc trong việc tổ chức và sắp xếp các vie

0 0 202

- vừa được xem lúc

Sự khác nhau giữa những điều tưởng giống nhau - Phần 3

Hôm nay, để tiếp tục cho series so sánh, hãy cùng mình khám phá thêm 2 địa danh mới khá nổi tiếng của Việt Nam mình đó là Cù Lao Chàm và đảo Lý Sơn. .

0 0 112

- vừa được xem lúc

Một số thuật toán sắp xếp

Chắc hẳn ngồi trên ghế giảng đường đại học thì ai cũng sẽ được làm quen với thuật toán. Nghe thì thật là trừu tượng và mơ hồ, nhưng để tối ưu hóa những bài toán đặt ra thì bắt buộc các bạn phải học đế

0 0 178