Mô tả lỗi:

Nginx phát hiện ít nhất 2 block server khai báo cùng server_namecms.domain.com.vn trên port 80. Khi đó, Nginx sẽ bỏ qua một trong các block, dẫn đến việc HTTP-01 challenge của Let's Encrypt không thể xác thực domain.

Ví dụ trong log:

nginx: [warn] conflicting server name "cms.domain.com.vn" on 0.0.0.0:80, ignored

Nguyên nhân:

Cấu hình Nginx có dạng trùng lặp như sau:

server {
    listen 80;
    server_name cms.domain.com.vn;
    ...
}

server {
    listen 80;
    server_name cms.domain.com.vn;
    ...
}

Cách xử lý:

  1. Tìm file cấu hình trùng
grep -R "server_name cms.domain.com.vn" /etc/nginx/
  1. Xóa hoặc gộp block trùng
    • Nếu block không dùng: xóa hoặc comment.
    • Nếu block dùng cho mục đích khác: gộp lại thành 1 block duy nhất, ví dụ:
server {
    listen 80;
    server_name cms.domain.com.vn;

    root /var/www/cms.domain.com.vn;
    
    location /.well-known/acme-challenge/ {
        root /var/www/letsencrypt;
    }

    ...
}
  1. Kiểm tra cấu hình Nginx:
sudo nginx -t
  1. Reload Nginx:
sudo systemctl reload nginx