CH-J Server Managerquản lý máy chủ qua SSH
Menu
Tất cả hướng dẫn và bài viết →

Quản lý NGINX mà không làm gián đoạn trang web

Sao lưu cấu hình, kiểm tra bằng nginx -t, áp dụng bằng cách nạp lại để các yêu cầu đang mở hoàn tất và khôi phục khi có lỗi.

Nạp lại thay vì khởi động lại

Nạp lại yêu cầu NGINX đọc lại cấu hình. NGINX khởi chạy các tiến trình worker mới và để các tiến trình cũ xử lý xong những yêu cầu đang mở, nên người truy cập thường không nhận thấy gì. Nếu không thể áp dụng cấu hình mới, NGINX tiếp tục chạy với cấu hình cũ. Khởi động lại sẽ dừng dịch vụ trước nên làm ngắt kết nối, và dịch vụ có thể không khởi chạy lại được nếu cấu hình sai.

Sao lưu tệp bạn sẽ sửa

Trước khi chỉnh sửa, tạo một bản sao cạnh tệp gốc và đặt ngày trong tên bản sao. Không để bản sao trong thư mục mà NGINX nạp bằng ký tự đại diện như conf.d/*.conf hoặc sites-enabled/*, vì NGINX cũng sẽ nạp chúng. Trên Debian và Ubuntu, sửa tệp trong sites-available; mục trong sites-enabled thường chỉ là liên kết tới tệp đó.

sudo cp -a /etc/nginx/sites-available/example.conf /root/example.conf.$(date +%Y%m%d-%H%M%S)

Kiểm tra rồi nạp lại

nginx -t kiểm tra cú pháp và các tệp mà cấu hình tham chiếu, chẳng hạn như chứng chỉ. Dùng nginx -T để xem toàn bộ cấu hình sau khi nạp các tệp được đưa vào. Chỉ nạp lại khi kiểm tra thành công; nối các lệnh bằng && sẽ bảo đảm điều này. Kiểm tra không thể cho biết cấu hình có thực hiện đúng ý định của bạn hay không, vì vậy hãy mở trang web sau đó.

sudo nginx -t && sudo systemctl reload nginx
sudo nginx -T | less
curl -I https://example.com/

Khi xảy ra sự cố

Khôi phục bản sao lưu, kiểm tra lại rồi nạp lại. Nếu dịch vụ đã dừng, nhật ký lỗi và journal cho biết nguyên nhân. Tìm các thông báo về cổng đã được sử dụng, chứng chỉ bị thiếu hoặc tên máy chủ bị trùng.

sudo cp -a /root/example.conf.20261031-120000 /etc/nginx/sites-available/example.conf
sudo nginx -t && sudo systemctl reload nginx
sudo journalctl -u nginx -n 50 --no-pager
sudo tail -n 50 /var/log/nginx/error.log

Những việc nạp lại không giải quyết được

Các kết nối kéo dài như WebSockets tiếp tục do worker cũ xử lý cho đến khi kết thúc, nên worker cũ có thể chạy thêm một thời gian và dùng thêm bộ nhớ. Việc nâng cấp gói có thể tự khởi động lại dịch vụ. Hãy thử các thay đổi lớn trên máy chủ thử nghiệm trước, bao gồm chứng chỉ và chuyển hướng.

NGINX Manager trong CH-J Server Manager

NGINX Manager chỉnh sửa các tệp cấu hình trong những thư mục NGINX được quản lý trên máy chủ Linux, tối đa 512 KiB mỗi tệp. Khi lưu, ứng dụng tạo bản sao lưu với hậu tố .chj-backup-, chạy nginx -t và chỉ giữ thay đổi nếu kiểm tra thành công. Việc nạp lại cần bạn xác nhận rõ ràng và sẽ chạy kiểm tra lần nữa trước khi bắt đầu. Liên kết tượng trưng đang được bật không bị thay thế; hãy sửa tệp tương ứng trong sites-available.

Tài liệu chi tiết

NGINX: Controlling nginx →

NGINX: Beginner's Guide →

Mở khóa sinh trắc học và bảo mật →