Hướng Dẫn

Cách Sử Dụng Nginx Để Lưu Trữ Nhiều Website

  • 23 phút đọc
  • Đội ngũ Hostragons
Cách Sử Dụng Nginx Để Lưu Trữ Nhiều Website

Blok máy chủ Nginx là cách thức cho phép bạn phát hành nhiều tên miền hoặc trang web với các cấu hình riêng biệt trên một cài đặt Nginx duy nhất. Ví dụ, bạn có thể định nghĩa các thư mục gốc, tệp log, chứng chỉ SSL và cấu hình PHP khác nhau cho example.com, blog.example.com và second-site.com trên cùng một VPS. Tóm lại, giải pháp là tạo một thư mục riêng cho mỗi trang web, điều hướng các bản ghi DNS của tên miền đến địa chỉ IP của máy chủ, viết một blok máy chủ riêng trong thư mục /etc/nginx/sites-available, liên kết nó đến thư mục sites-enabled, kiểm tra cấu hình và tải lại dịch vụ Nginx.

Trong hướng dẫn này, chúng ta sẽ xem xét quy trình lưu trữ nhiều trang web với các blok máy chủ Nginx một cách phù hợp cho môi trường sản xuất. Mục tiêu không chỉ là xây dựng một cấu trúc hoạt động, mà còn là tạo ra một hệ thống có thể quản lý, an toàn, nhanh chóng, có thể sao lưu và mở rộng. Chúng tôi sẽ chia sẻ các bước thực tiễn đặc biệt cho các cơ quan, nhà phát triển, chủ sở hữu thương mại điện tử, các doanh nghiệp quản lý nhiều thương hiệu và các quản trị viên hệ thống chạy nhiều dự án trên một máy chủ. Nếu bạn chưa có máy chủ, bạn có thể tham khảo các trang Máy Chủ VPS cho việc chọn nguồn và Chứng nhận tên miền cho quản lý tên miền.

Blok Máy Chủ Nginx Là Gì?

Blok máy chủ Nginx là các phần cấu hình trong cấu hình Nginx được định nghĩa dưới dạng blok server, xác định trang web nào sẽ được chuyển hướng khi có yêu cầu HTTP hoặc HTTPS đến. Nó tương tự như khái niệm VirtualHost của Apache. Khi một người dùng nhập một tên miền vào trình duyệt, DNS sẽ giải mã tên miền này thành địa chỉ IP của máy chủ. Sau đó, Nginx sẽ kiểm tra tiêu đề Host trong yêu cầu và kích hoạt blok máy chủ có giá trị server_name phù hợp.

Bằng cách này, hàng chục trang web khác nhau có thể được phát hành trên cùng một địa chỉ IP và cùng một máy chủ vật lý hoặc ảo. Có thể định nghĩa riêng các thư mục gốc, log truy cập, log lỗi, quy tắc chuyển hướng, chứng chỉ SSL, chính sách cache và quy tắc bảo mật cho mỗi trang. Ví dụ, bạn có thể giữ trang web doanh nghiệp của mình trong /var/www/doanhnghiep/public, blog của bạn trong /var/www/blog/public, và môi trường thử nghiệm trong /var/www/staging/public.

Nginx rất hiệu quả trong cấu trúc này vì kiến trúc tập trung vào sự kiện của nó cho phép quản lý kết nối đồng thời cao với mức tiêu thụ tài nguyên thấp. Do đó, nó thường được ưa chuộng trong các hạ tầng hosting chia sẻ, VPS, máy chủ đám mây và ứng dụng có lưu lượng truy cập cao. Để việc lưu trữ nhiều trang web hoạt động hiệu quả, mọi chi tiết từ quyền tệp đến điều hướng DNS, cài đặt SSL đến phân tách log đều cần được lập kế hoạch chính xác.

Khi Nào Nên Sử Dụng Blok Máy Chủ Nginx?

Blok máy chủ Nginx thường được sử dụng khi bạn cần quản lý nhiều sự hiện diện web trên một máy chủ duy nhất. Điều này có thể là hai trang web doanh nghiệp nhỏ hoặc hàng chục dự án khách hàng, tên miền phụ hoặc dịch vụ vi mô. Điểm quan trọng ở đây là mỗi dự án cần được tách biệt một cách hợp lý.

  • Nếu bạn muốn phát hành nhiều tên miền trên cùng một VPS.
  • Nếu bạn muốn chuyển hướng tên miền www và không phải www đến một địa chỉ chính.
  • Nếu bạn muốn liên kết các tên miền phụ đến các thư mục hoặc ứng dụng khác nhau.
  • Nếu bạn muốn định nghĩa chứng chỉ SSL và chính sách bảo mật riêng cho mỗi trang.
  • Nếu bạn muốn theo dõi các dự án khách hàng với các tệp log riêng biệt.
  • Nếu bạn muốn chạy các ứng dụng khác nhau như Laravel, WordPress, HTML tĩnh và Node.js trên cùng một máy chủ.

Ví dụ, một công ty kỹ thuật số có thể kỹ thuật phát hành 8 trang web doanh nghiệp có lưu lượng truy cập thấp trên một VPS có RAM 4 GB. Tuy nhiên, cần tính toán lưu lượng, mức sử dụng đĩa, số lượng xử lý PHP, tải cơ sở dữ liệu và tần suất sao lưu cho mỗi trang. Nếu các dự án nhận lưu lượng truy cập cao hoặc việc phân tách tài nguyên là quan trọng, nên cân nhắc đến VPS mạnh hơn, máy chủ đám mây hoặc các giải pháp hosting có quản lý. Tại đây, bạn có thể so sánh các tùy chọn Hosting WebHosting Doanh Nghiệp.

Yêu Cầu Trước Khi Bắt Đầu

Trong hướng dẫn này, chúng ta sẽ giả định sử dụng một máy chủ Linux dựa trên Ubuntu hoặc Debian. Các lệnh có thể có sự khác biệt nhỏ tùy thuộc vào bản phân phối; nhưng logic là giống nhau. Trước khi thực hiện bất kỳ thao tác nào trong môi trường sản xuất, hãy đảm bảo sao lưu. Việc cấu hình Nginx sai có thể khiến tất cả các trang web tạm thời không thể truy cập được.

Chuẩn Bị Kỹ Thuật Cần Thiết

  • Tài khoản người dùng Linux có quyền root hoặc sudo.
  • Dịch vụ Nginx đã cài đặt và đang chạy.
  • Ít nhất một tên miền đã được điều hướng đến địa chỉ IP của máy chủ.
  • Các cổng 80 và 443 phải mở trong tường lửa.
  • Cấu trúc thư mục gọn gàng cho các tệp trang web.
  • Chứng chỉ hợp lệ cho SSL hoặc sử dụng Let’s Encrypt miễn phí.
  • Cài đặt PHP-FPM cho các ứng dụng dựa trên PHP.

Về phía DNS, bản ghi A sẽ điều hướng tên miền chính đến địa chỉ IPv4, trong khi bản ghi AAAA (nếu có) sẽ điều hướng đến địa chỉ IPv6. Các tên miền phụ như www có thể sử dụng bản ghi CNAME hoặc A. Việc phổ biến DNS thường mất từ vài phút đến 24 giờ. Khi thực hiện cài đặt mới, chuẩn bị các bản ghi DNS trước, sau đó chuyển sang cấu hình blok máy chủ Nginx sẽ giúp tăng tốc quá trình.

Cấu Trúc Thư Mục Đề Xuất

Một trong những lỗi phổ biến nhất khi lưu trữ nhiều trang là giữ tất cả các tệp trong một thư mục duy nhất một cách lộn xộn. Mặc dù phương pháp này có vẻ dễ dàng trong ngắn hạn, nhưng nó có thể gây ra sự lãng phí thời gian đáng kể trong các quy trình bảo trì, sao lưu và gỡ lỗi. Một phương pháp tốt hơn là sử dụng một thư mục cấp trên riêng cho mỗi tên miền và bên trong đó là các thư mục con như public, logs, backups.

Một cấu trúc mẫu có thể được lên kế hoạch như sau: /var/www/site1.com/public, /var/www/site1.com/logs, /var/www/site2.com/public và /var/www/site2.com/logs. Giá trị root của Nginx phải chỉ định trực tiếp vào thư mục public. Bằng cách này, các tệp ứng dụng, các tệp nhạy cảm như .env và các bản sao lưu sẽ không thể truy cập trực tiếp từ web.

Để kiểm tra một trang tĩnh, bạn có thể đặt một tệp index.html đơn giản vào mỗi thư mục trang. Bằng cách viết tên trang vào nội dung, bạn có thể nhanh chóng xác nhận blok máy chủ nào đang hoạt động. Trong môi trường sản xuất, quyền sở hữu của các thư mục này thường được điều chỉnh bởi người dùng www-data hoặc người dùng đặc biệt thực hiện triển khai. Quyền tệp cho các thư mục nên là 755 và cho các tệp là 644 thường đủ trong hầu hết các kịch bản tĩnh. Đối với các ứng dụng yêu cầu ghi như WordPress, các khu vực như thư mục uploads cũng cần được xem xét riêng.

Hướng Dẫn Từng Bước Tạo Blok Máy Chủ Nginx

Các bước dưới đây được minh họa thông qua tên miền site1.com. Bạn có thể lặp lại cùng một phương pháp cho trang thứ hai, thứ ba hoặc nhiều trang hơn. Điểm quan trọng là sử dụng các giá trị server_name, root và tệp log độc nhất cho mỗi trang.

1. Tạo Thư Mục Trang Web

Bước đầu tiên là tạo thư mục nơi các tệp web sẽ được lưu trữ. Ví dụ: sudo mkdir -p /var/www/site1.com/public. Sau đó, bạn có thể tạo một tệp /var/www/site1.com/public/index.html cho thử nghiệm và viết một nội dung như “Đây là trang kiểm tra của site1.com” để phân biệt.

Để thiết lập quyền sở hữu đúng cách, có thể sử dụng lệnh sudo chown -R www-data:www-data /var/www/site1.com. Nếu bạn thực hiện các thao tác triển khai bằng một người dùng khác, hãy điều chỉnh quyền nhóm cho phù hợp. Trong môi trường sản xuất, hãy tránh các quyền 777 mà mọi người đều có quyền ghi. Những quyền này có thể khiến tin tặc lạm dụng các thư mục tải lên.

2. Tạo Tệp Blok Máy Chủ

Thực tiễn phổ biến trong Nginx là giữ các cấu hình không hoạt động trong thư mục /etc/nginx/sites-available và liên kết chúng đến /etc/nginx/sites-enabled bằng cách sử dụng liên kết biểu tượng. Tệp mẫu: /etc/nginx/sites-available/site1.com.

Một blok máy chủ HTTP đơn giản được viết theo logic như sau: server { listen 80; server_name site1.com www.site1.com; root /var/www/site1.com/public; index index.html index.htm; access_log /var/log/nginx/site1.com.access.log; error_log /var/log/nginx/site1.com.error.log; location / { try_files $uri $uri/ =404; } }

Trong cấu hình này, listen 80 lắng nghe lưu lượng HTTP, server_name chỉ ra các tên miền nào thuộc blok này, root chỉ định thư mục chứa các tệp web và index định nghĩa tệp mặc định. try_files sẽ trả về 404 nếu không tìm thấy tệp hoặc thư mục yêu cầu. Cấu trúc này khá đủ cho các trang tĩnh.

3. Kích Hoạt Trang Web

Để kích hoạt cấu hình, tạo liên kết biểu tượng: sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/site1.com. Phương pháp này tốt hơn việc sao chép các tệp vì bạn chỉ làm việc với một tệp cấu hình chính. Khi bạn thay đổi, tệp liên kết cũng sẽ được cập nhật.

Nếu bạn không muốn trang mặc định của Nginx hiển thị trước trang của mình, bạn có thể vô hiệu hóa cấu hình mặc định. Để làm điều này, bạn có thể loại bỏ liên kết /etc/nginx/sites-enabled/default. Tuy nhiên, hãy đảm bảo rằng blok máy chủ của bạn hoạt động chính xác trước khi làm điều đó.

4. Kiểm Tra Cấu Hình Và Tải Lại Nginx

Sau mỗi thay đổi, lệnh sudo nginx -t nên được sử dụng để kiểm tra cú pháp. Nếu kiểm tra thành công, lệnh sudo systemctl reload nginx sẽ tải lại dịch vụ mà không bị gián đoạn. Lệnh reload thường an toàn hơn so với restart vì nó quản lý các kết nối đang hoạt động một cách mượt mà hơn.

Nếu kiểm tra không thành công, thông báo lỗi thường cho thấy tên tệp và số dòng. Thiếu dấu chấm phẩy, dấu ngoặc nhọn sai, đường dẫn thư mục sai hoặc giá trị server_name trùng lặp là các vấn đề phổ biến nhất. Nginx không nên được tải lại cho đến khi lỗi được khắc phục.

Thêm Trang Thứ Hai Và Thứ Ba

Đẹp của việc lưu trữ nhiều trang là sau khi cài đặt đúng ban đầu, quy trình có thể được lặp lại. Bạn tạo thư mục /var/www/site2.com/public cho site2.com, viết tệp /etc/nginx/sites-available/site2.com, thay đổi giá trị root và log cho site2.com, tạo liên kết biểu tượng và chạy kiểm tra Nginx.

Cấu trúc đơn giản cho trang thứ hai sẽ được phân tách theo logic như sau: server { listen 80; server_name site2.com www.site2.com; root /var/www/site2.com/public; index index.html; access_log /var/log/nginx/site2.com.access.log; error_log /var/log/nginx/site2.com.error.log; location / { try_files $uri $uri/ =404; } }

Sử dụng log riêng cho mỗi trang là rất quý giá trong thực tế. Ví dụ, trong khi một trang có nhiều lỗi 404, trang khác có thể không gặp vấn đề gì. Cấu trúc log riêng cho phép bạn tìm ra nguồn gốc lỗi trong vài giây. Tương tự, phân tích lưu lượng, tấn công bot, liên kết hỏng và vấn đề hiệu suất có thể được theo dõi theo từng trang.

Cấu Hình SSL và HTTPS

Trong tiêu chuẩn SEO 2026, HTTPS không chỉ là một tính năng bảo mật mà còn là một chỉ số về sự tin cậy và chất lượng kỹ thuật. Các trình duyệt đánh dấu các trang HTTP là không an toàn; SSL là bắt buộc cho các dự án có thanh toán, đăng ký, biểu mẫu hoặc bảng điều khiển quản lý. Khi lưu trữ nhiều trang, cần định nghĩa chứng chỉ chính xác cho mỗi tên miền. Bạn có thể xem trang Chứng Chỉ SSL trên Hostragons để đáp ứng nhu cầu SSL của bạn.

Nếu bạn đang sử dụng Let’s Encrypt, bạn có thể nhận chứng chỉ cho mỗi tên miền bằng Certbot. Trong quy trình mẫu, lệnh certbot --nginx -d site1.com -d www.site1.com sẽ nhận diện cấu hình Nginx và tự động thêm blok HTTPS. Tuy nhiên, kiểm tra tệp sau khi chỉnh sửa tự động là một thói quen tốt. Có thể xảy ra các vấn đề chuyển hướng sai hoặc các blok máy chủ lặp lại.

Trong cấu hình HTTPS, lưu lượng trên cổng 80 thường được chuyển hướng vĩnh viễn đến cổng 443. Chuyển hướng 301 cung cấp tín hiệu lựa chọn vĩnh viễn từ góc độ SEO. Quyết định xem bạn có sử dụng www hay không và tập hợp tất cả các biến thể về một địa chỉ chính. Ví dụ, nếu bạn muốn sử dụng https://site1.com thay vì https://www.site1.com, hãy chuyển hướng cả lưu lượng www HTTP và HTTPS về tên miền không có www. Điều này giảm thiểu rủi ro nội dung sao chép.

Blok Máy Chủ Nginx Cho Các Trang PHP và WordPress

Việc cấu hình cho các trang HTML tĩnh là đơn giản; nhưng với WordPress, Laravel hoặc các ứng dụng PHP tùy chỉnh, cần tích hợp với PHP-FPM. Trong trường hợp này, tệp index.php được định nghĩa và các yêu cầu PHP được chuyển đến socket tương ứng. Ví dụ, trên Ubuntu, đường dẫn socket cho PHP 8.3 có thể là /run/php/php8.3-fpm.sock. Phiên bản sẽ thay đổi tùy thuộc vào máy chủ.

Logic mẫu cho PHP: server { listen 80; server_name wordpress-site.com www.wordpress-site.com; root /var/www/wordpress-site.com/public; index index.php index.html; location / { try_files $uri $uri/ /index.php?$args; } location ~ php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.3-fpm.sock; } }

Để các liên kết vĩnh viễn hoạt động cho WordPress, cấu trúc try_files $uri $uri/ /index.php?$args là rất quan trọng. Ngoài ra, cần xem xét các biện pháp bảo mật như giới hạn tỷ lệ truy cập vào xmlrpc.php, wp-login.php, và ngăn chặn thực thi PHP trong thư mục uploads. Nếu bạn lưu trữ nhiều trang WordPress trên cùng một VPS, hãy sử dụng cơ sở dữ liệu riêng, người dùng riêng và chính sách cập nhật thường xuyên cho mỗi trang. Đối với những người tìm kiếm các lựa chọn hosting WordPress, Hosting WordPress có thể là một lựa chọn quản lý hơn.

So Sánh Blok Máy Chủ Nginx Với Apache VirtualHost

So Sánh Blok Máy Chủ Nginx Với Apache VirtualHost

Nginx và Apache đạt được mục tiêu giống nhau thông qua các kiến trúc khác nhau. Cả hai đều có thể lưu trữ nhiều trang trên cùng một máy chủ. Lựa chọn phụ thuộc vào nhu cầu ứng dụng, thói quen quản lý và kỳ vọng về hiệu suất.

So Sánh Blok Máy Chủ Nginx Với Apache VirtualHost
Tiêu ChíBlok Máy Chủ NginxApache VirtualHost
Hiệu SuấtNổi bật với mức tiêu thụ tài nguyên thấp trong kết nối đồng thời cao.Có thể tiêu thụ nhiều tài nguyên hơn tùy thuộc vào mô hình mô-đun và quy trình.
Cấu HìnhCó logic cấu hình trung tâm và đơn giản.Cung cấp sự linh hoạt theo thư mục với .htaccess.
Trình Bày Tệp TĩnhRất nhanh chóng và hiệu quả.Cung cấp hiệu suất tốt nhưng Nginx thường nhẹ hơn.
Chạy PHPChạy qua PHP-FPM.Có thể sử dụng mod_php hoặc PHP-FPM.
Kịch Bản Sử DụngMạnh mẽ cho reverse proxy, tệp tĩnh, lưu lượng cao và ứng dụng hiện đại.Thực tiễn cho các ứng dụng cũ phụ thuộc vào .htaccess và cấu trúc hosting chia sẻ.

Nếu ứng dụng của bạn phụ thuộc nhiều vào quy tắc .htaccess, Apache có thể dễ dàng hơn. Tuy nhiên, cho lưu lượng cao, reverse proxy, cache và các luồng phân phối hiện đại, Nginx thường là lựa chọn mạnh mẽ hơn trong hầu hết các dự án. Trong một số cơ sở hạ tầng, Nginx có thể được sử dụng như một reverse proxy, trong khi Apache làm máy chủ ứng dụng phía sau.

Các Thực Hành Tốt Nhất Để Đảm Bảo An Ninh

Lưu trữ nhiều trang trên cùng một máy chủ có lợi về mặt chi phí; nhưng cũng tăng trách nhiệm bảo mật. Để ngăn chặn lỗ hổng trên một trang ảnh hưởng đến các trang khác, cần áp dụng nguyên tắc phân tách và quyền tối thiểu.

  • Tạo cơ sở dữ liệu và người dùng cơ sở dữ liệu riêng cho mỗi trang.
  • Giới hạn thư mục gốc web chỉ với thư mục public.
  • Giữ các tệp sao lưu, .env, .git, config và SQL ngoài khả năng truy cập web.
  • Định kỳ làm mới các chứng chỉ SSL và bắt buộc chuyển hướng HTTPS.
  • Sử dụng tường lửa như UFW trên máy chủ; chỉ mở các cổng cần thiết.
  • Thường xuyên cập nhật Nginx và hệ điều hành.
  • Giữ log truy cập và log lỗi riêng cho mỗi trang.
  • Thêm giới hạn IP hoặc xác thực bổ sung cho các bảng điều khiển quản lý.
  • Tránh các quyền rộng như 777 trong quyền tệp.

Thêm vào đó, việc thêm các tiêu đề bảo mật cơ bản là hữu ích. Các tiêu đề như X-Frame-Options, X-Content-Type-Options, Referrer-Policy và Content-Security-Policy có thể được xem xét cho các dự án phù hợp. Tuy nhiên, đặc biệt là Content-Security-Policy nếu áp dụng sai có thể ngăn chặn các tệp script và style; vì vậy nên thử nghiệm trong môi trường thử nghiệm trước. Để biết thêm nội dung về an ninh, có thể tham khảo các bài viết về Bảo mật website.

Các Lưu Ý Để Tối Ưu Hóa Hiệu Suất và SEO

Blok máy chủ Nginx không chỉ ảnh hưởng đến việc xuất bản mà còn đến chất lượng hiệu suất và SEO. Các chuỗi chuyển hướng sai, lựa chọn canonical sai, thiếu nén gzip hoặc brotli, tệp log lớn và cài đặt cache không đủ có thể làm giảm tốc độ của trang. Các tín hiệu trải nghiệm trang của Google tập trung vào người dùng; những trang có phản hồi nhanh, an toàn và ổn định có xu hướng hoạt động tốt hơn.

Đầu tiên, hãy xác định một phiên bản canonical duy nhất cho mỗi tên miền. Thực hiện chuyển hướng một bước từ HTTP sang HTTPS, từ www sang không www hoặc ngược lại. Chuỗi chuyển hướng không nên là: http://site.com chuyển sang http://www.site.com, sau đó sang https://www.site.com, sau đó sang https://site.com. Thay vào đó, việc chuyển hướng trực tiếp bằng 301 đến đích là đúng hơn.

Các tiêu đề cache-control có thể được sử dụng cho các tệp tĩnh. Hình ảnh, tệp CSS và JS có thể được lưu trữ trong trình duyệt trong một khoảng thời gian nhất định. Tuy nhiên, cho các tệp thường xuyên thay đổi, nên sử dụng chiến lược phiên bản hóa tên tệp hoặc chuỗi truy vấn. Nén gzip giảm băng thông cho các tệp dựa trên văn bản như HTML, CSS, JS và JSON. Đối với các trang có lưu lượng cao, có thể xem xét sử dụng microcache Nginx, cache FastCGI hoặc CDN. Đối với các nhu cầu về CDN và truy cập toàn cầu, có thể tham khảo nội dung như CDN là gì.

Quản Lý Log và Giám Sát

Quản lý log trong lưu trữ nhiều trang là chìa khóa để giải quyết vấn đề. Các tệp log riêng biệt cho thấy rõ ràng lỗi nào đang xảy ra trên trang nào. access_log ghi lại các yêu cầu của khách truy cập, trong khi error_log ghi lại các lỗi cấu hình, quyền, tệp không tìm thấy và lỗi upstream. Lỗi 502 Bad Gateway thường liên quan đến dịch vụ PHP-FPM hoặc kết nối với các dịch vụ phía sau. Lỗi 403 Forbidden có thể là vấn đề về quyền hoặc tệp index. 404 Not Found có thể chỉ ra lỗi đường dẫn tệp, lỗi rewrite hoặc vấn đề sai root sau DNS.

Để ngăn chặn sự phát triển không giới hạn của các tệp log, cấu hình logrotate nên được kiểm tra. Đối với các dự án nhỏ, việc xoay log hàng ngày hoặc hàng tuần có thể là đủ. Trong các trang có lưu lượng cao, cần sử dụng các hệ thống thu thập log trung tâm, theo dõi số liệu và hệ thống cảnh báo. Việc ổ đĩa đầy có thể ngăn Nginx ghi log, làm ngừng cơ sở dữ liệu và khiến các trang không thể truy cập. Vì vậy, việc thiết lập ngưỡng sử dụng đĩa là một biện pháp thực tiễn.

Các Lỗi Phổ Biến Và Giải Pháp Nhanh

Khi làm việc với blok máy chủ Nginx, một số lỗi có thể xuất hiện trong hầu hết mọi dự án. Biết những lỗi này có thể rút ngắn thời gian cài đặt một cách đáng kể.

  • Tên miền mở sai trang: kiểm tra các xung đột server_name và blok máy chủ mặc định.
  • Lỗi 403 Forbidden: kiểm tra thư mục gốc, quyền tệp và sự tồn tại của tệp index.
  • Lỗi 404 Not Found: kiểm tra đường dẫn root và quy tắc try_files.
  • Lỗi 502 Bad Gateway: xác nhận rằng dịch vụ PHP-FPM đang chạy và đường dẫn socket là chính xác.
  • Chứng chỉ SSL thuộc về trang sai: kiểm tra server_name trên cổng 443 và các tệp chứng chỉ.
  • Chuỗi chuyển hướng bị lặp: đơn giản hóa các quy tắc chuyển hướng HTTP-HTTPS và www.
  • Nginx không tải lại: sửa lỗi cú pháp dựa trên số dòng trong đầu ra sudo nginx -t.

Các quản trị viên dày dạn kinh nghiệm thường có một danh sách kiểm tra đơn giản: DNS có chính xác không, cấu hình Nginx có hoạt động không, thư mục gốc có tồn tại không, quyền có đúng không, dịch vụ đã vượt qua kiểm tra chưa, log nói gì? Tiến hành theo trình tự này sẽ giúp bạn nhanh chóng tìm ra giải pháp mà không hoảng loạn.

Danh Sách Kiểm Tra Thực Tế Cho Môi Trường Sản Xuất

Trước khi đưa vào hoạt động, hãy xác minh từng trang với danh sách kiểm tra dưới đây. Đặc biệt, trong các dự án của khách hàng, việc ghi lại các mục này trước khi bàn giao sẽ tạo ra một tiêu chuẩn làm việc chuyên nghiệp.

  • Bản ghi A hoặc AAAA của tên miền đang điều hướng đến đúng địa chỉ IP.
  • Một trong hai phiên bản www và không www đã được chọn làm phiên bản chính.
  • Lưu lượng HTTP được chuyển hướng đến HTTPS bằng 301.
  • Chứng chỉ SSL hợp lệ và việc làm mới tự động đã được kích hoạt.
  • Các tệp log và root riêng đã được định nghĩa cho mỗi trang.
  • Cấu hình Nginx đã được xác nhận bằng sudo nginx -t.
  • Kế hoạch sao lưu đã được xác định và kiểm tra phục hồi đã được thực hiện.
  • Quyền tệp phù hợp với nguyên tắc quyền tối thiểu.
  • Chỉ mở các cổng cần thiết trong tường lửa.
  • Các log lỗi đã được theo dõi ít nhất 15 phút sau khi đưa vào hoạt động.

Danh sách này có vẻ nhỏ nhưng có thể giảm thiểu đáng kể rủi ro gián đoạn trong các dự án thực tế. Đặc biệt, các bước kiểm tra SSL, kiểm tra DNS và giám sát log thường phát hiện sớm các lỗi không nhìn thấy.

Kết Luận

Blok máy chủ Nginx là một trong những phương pháp cơ bản để lưu trữ nhiều trang web một cách có tổ chức, an toàn và hiệu suất trên một máy chủ duy nhất. Cấu trúc thư mục đúng, các tệp cấu hình riêng biệt, quy tắc chuyển hướng rõ ràng, việc sử dụng HTTPS, phân tách log và quy trình kiểm tra định kỳ sẽ giúp quản lý nhiều trang hiệu quả hơn. Các nguyên tắc này có thể được áp dụng từ một trang portfolio nhỏ cho đến nhiều dự án của khách hàng.

Nếu bạn đang có kế hoạch phát hành một dự án mới, trước tiên hãy làm rõ tên miền, nguồn máy chủ và nhu cầu SSL của bạn; sau đó hãy thiết lập cấu hình Nginx của bạn từng bước với danh sách kiểm tra phía trên. Nếu bạn đang tìm kiếm một hạ tầng dễ quản lý hơn, bạn có thể chọn điểm khởi đầu phù hợp cho dự án của mình bằng cách tham khảo các giải pháp Gói hosting, Máy Chủ VPSChứng Chỉ SSL của Hostragons.

Các Câu Hỏi Thường Gặp

Có bao nhiêu trang có thể được lưu trữ với blok máy chủ Nginx?

Về mặt kỹ thuật, bạn có thể lưu trữ nhiều trang trên cùng một máy chủ với Nginx; giới hạn thường phụ thuộc vào CPU, RAM, đĩa, lưu lượng, tải cơ sở dữ liệu và khả năng PHP-FPM. Trong khi hàng chục trang có thể khả thi cho các trang tĩnh có lưu lượng thấp, các dự án WordPress hoặc thương mại điện tử có lưu lượng cao hơn thường không nên lưu trữ nhiều trang hơn.

Có cần chứng chỉ SSL riêng cho mỗi trang không?

Có, mỗi tên miền hoặc tên miền phụ sẽ được phát hành qua HTTPS cần được đưa vào phạm vi của chứng chỉ. Có thể sử dụng chứng chỉ riêng lẻ hoặc chứng chỉ SAN hoặc wildcard. Điều quan trọng là các tệp chứng chỉ đúng được liên kết với tên miền đúng trong blok máy chủ Nginx trên cổng 443.

Có thể phát hành tên miền phụ với blok máy chủ Nginx không?

Có. Bạn có thể định nghĩa các server_name riêng cho các tên miền phụ như blog.site.com hoặc panel.site.com và chuyển hướng đến thư mục root khác hoặc ứng dụng phía sau khác. Bạn sẽ cần tạo bản ghi A hoặc CNAME cho tên miền phụ tương ứng trên DNS.

Sự khác biệt giữa sites-available và sites-enabled là gì?

sites-available là nơi chứa các tệp cấu hình có thể sử dụng; sites-enabled chứa các cấu hình đang hoạt động. Thông thường, trong sites-enabled, một liên kết biểu tượng được tạo ra cho tệp trong sites-available. Phương pháp này giúp việc kích hoạt và vô hiệu hóa các trang trở nên có tổ chức hơn.

Nếu trang mở sai, vấn đề đến từ đâu?

Các lý do phổ biến nhất bao gồm DNS điều hướng đến IP sai, giá trị server_name không chính xác, blok máy chủ mặc định của Nginx bắt yêu cầu hoặc blok SSL sai hoạt động trên cổng 443. Đầu tiên hãy kiểm tra các bản ghi DNS, sau đó kiểm tra đầu ra nginx -t, các liên kết sites-enabled đang hoạt động và tệp access_log liên quan.

Chia sẻ bài viết này:

Đội ngũ Hostragons

Những hướng dẫn cập nhật nhất từ đội ngũ chuyên gia của chúng tôi về dịch vụ lưu trữ, máy chủ và tên miền. Hãy cùng nhau tìm ra giải pháp phù hợp cho dự án của bạn.

Liên hệ với chúng tôi