Bài viết hướng dẫn cấu hình Nginx trên localhost và Linux server cho website, giúp bạn dễ dàng tìm hiểu và khởi tạo các cấu hình để thiết lập trang web một cách nhanh chóng.
Hướng dẫn cấu hình Nginx trên localhost và server cho website
Trong bài viết trước itsmeit đã hướng dẫn cài đặt Nginx trên Ubuntu 22.04 | 20.04 & Linux và tổng quan về các thư mục trong Nginx. Bây giờ hãy cùng itsmeit cấu hình và thiết lập nó.
Theo mặc định khi bạn thêm domain và các dự án mới thì các cấu hình sẽ được đặt trong /etc/nginx/sites-available và sử dụng lệnh ln -s tạo symlink đến thư mục /etc/nginx/sites-enabled để chạy. Ở đây itsmeit sẽ cấu hình Nginx cho website hoạt động cả trên localhost và server và bỏ qua bước chạy lệnh ln -s symlink, có nghĩa là bạn chỉ cần thêm cấu hình doman vào /etc/nginx/sites-available sau đó restart lại Nginx là có thể khởi động website.
Bước 1. Custom cấu hình Main config cho Nginx
Để làm điều này, hãy mở file /etc/nginx/nginx.conf và thêm vào cuối cùng 2 dòng sau:
sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-available/*.conf;
Ở cấu hình bên trên, itsmeit đã include file config trong thư mục conf.d và include trực tiếp các file trong thư mục sites-available, vì vậy bạn sẽ không cần phải sử dụng lệnh ln -s symlink mỗi khi tạo cấu hình Nginx cho domain, website mới. Ngoài ra itsmeit cũng xóa bỏ hết các comment và thêm config Protocols SSL, file của itsmeit sẽ được như sau:
user www-data; worker_processes auto; pid /run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; ssl_protocols TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE ssl_prefer_server_ciphers on; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; gzip on; gzip_disable "msie6"; client_max_body_size 128M; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-available/*.conf; }
Bước 2. Cấu hình Protocols SSL và xác thực Cipher
Tiếp theo, khi cấu hình Nginx trên localhost cho website và Ubuntu hoặc Linux server để Protocols SSL hoạt động, bạn cần thêm Cipher để mã hóa và các config xác thực cho SSL (https). Hãy tạo một file mới có tên ssl_options.conf.inc trong thư mục /etc/nginx/conf.d/ và các nội dung bên dưới.
sudo nano /etc/nginx/conf.d/ssl_options.conf.inc
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384"; ssl_ecdh_curve secp384r1; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s;
Bấm Ctrl + X và nhập phím Y để lưu lại file.

Hoàn thành bước cấu hình main config và thêm Protocols SSL cho nginx, bây giờ hãy thử tạo một domain và cấu hình nó để xem nó hoạt động ra sao nhé.
Bước 3. Khởi tạo domain và chạy thử website
- Nếu bạn làm việc trên localhost, trước tiên hãy cấu hình cho domain của bạn bằng cách mở file /etc/hosts, ở đây itsmeit sẽ tạo một domain có tên dev.itsmeit.co và config nó là : 127.0.0.1 dev.itsmeit.co
sudo nano /etc/hosts

- Nếu bạn làm việc với server bạn cần transfer DNS domain đến IP hosting/VPS của bạn theo hướng dẫn của nhà cung cấp, không cần phải sửa file /etc/hosts.
Bước 4. Tạo cấu hình domain trong Nginx cho website
Để thêm cấu hình, như bạn đã biết mặc định các file config domain đều năm trong thư mục /etc/nginx/sites-available, bây giờ hãy tạo một domain mới ở đây và thêm cấu hình Nginx trên localhost và Linux server cho website bên dưới.
sudo nano /etc/nginx/sites-available/dev.itsmeit.co.conf
server { listen 80; listen [::]:80; root /var/www/vhosts/dev.itsmeit.co/httpdocs; index index.html index.php; server_name dev.itsmeit.co www.dev.itsmeit.co; # Overrides logs defined in nginx.conf, allows per site logs. access_log /var/log/nginx/dev.itsmeit.co.vhosts.log; error_log /var/log/nginx/dev.itsmeit.co.vhosts.err; location / { try_files $uri $uri/ /index.php?$args; } }
- listen: mặc định với port 80
- root: đường dẫn chính xác đến thư mục project
- server_name: domain/tên miền
- access_log và error_log: đường dẫn để lưu file log
Lưu file và khởi động lại Nginx, nếu có thông báo lỗi thì chạy lệnh sudo nginx -t để hiển thị chi tiết lỗi và sửa nó. Hoặc mở file /var/log/nginx/dev.itsmeit.co.vhost.err để xem lỗi.
sudo service nginx restart
Bước tiếp theo, trong cấu hình itsmeit đã config root là /var/www/vhosts/dev.itsmeit.co/httpdocs và chỉ định các file index index.html index.htm index.php là mặc định để domain tìm thấy, bây giờ itsmeit sẽ tạo một file index.html với nội dụng “Hướng dẫn cấu hình Nginx trên localhost và server cho website” và chạy website dev.itsmei.net.
mkdir -p /var/www/vhosts/dev.itsmeit.co/httpdocs nano /var/www/vhosts/dev.itsmeit.co/httpdocs/index.html


Như vậy là ItsmeIT đã hướng dẫn cấu hình với các bước đơn giản trong nginx để chạy một website, Ngoài ra bạn có thể tham khảo thêm cách cấu hình Nginx khác nếu bạn sử dụng wordpress hoặc magento 2 .
– Advertising –