nginx

Fix lỗi nginx với custombuild

Dưới đây là hướng dẫn chi tiết cách khắc phục lỗi khi thêm tên miền mới trên DirectAdmin với cài đặt nginx_apache bằng CustomBuild 2, đặc biệt khi gặp lỗi liên quan đến cổng 8080 đã được sử dụng. Bài viết này sẽ giúp bạn hiểu nguyên nhân gây ra lỗi và các bước cụ thể để giải quyết vấn đề này một cách hiệu quả.

1. Giới Thiệu Về Vấn Đề

Khi bạn cài đặt Nginx_Apache bằng CustomBuild 2 trên DirectAdmin và cố gắng thêm một tên miền mới, bạn có thể gặp lỗi khiến Nginx không thể khởi động lại. Điều này dẫn đến việc các tệp tin website bị hỏng và không thể truy cập được.

Thông Báo Lỗi Khi Khởi Động Nginx:

[root@sv06 ~]# service nginx restart
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] listen() to 0.0.0.0:8080, backlog 511 failed (98: Address already in use)
nginx: configuration file /etc/nginx/nginx.conf test failed

2. Nguyên Nhân Gây Ra Lỗi

Lỗi này xảy ra do Nginx được cấu hình để sử dụng cổng 8080, nhưng cổng này đã bị sử dụng bởi một dịch vụ khác trên server. Khi Nginx không thể sử dụng cổng 8080, nó không thể khởi động lại, dẫn đến việc không thể phục vụ các tên miền mới được thêm vào.

3. Các Bước Khắc Phục Lỗi

Bước 1: Kiểm Tra Cổng 8080 Đang Được Sử Dụng Bởi Dịch Vụ Nào

Trước tiên, hãy xác định xem dịch vụ nào đang sử dụng cổng 8080:

sudo netstat -tuln | grep 8080

Hoặc sử dụng ss:

sudo ss -tuln | grep 8080

Giải Thích:

  • netstat -tuln: Liệt kê tất cả các cổng đang nghe (-l) cho các kết nối TCP (-t) và UDP (-u) dưới dạng số (-n).
  • ss -tuln: Tương tự như netstat, nhưng nhanh hơn và cung cấp nhiều thông tin hơn.

Kết Quả:

  • Nếu có một dịch vụ khác đang sử dụng cổng 8080, bạn cần quyết định xem có nên dừng dịch vụ đó hay thay đổi cổng của Nginx.

Bước 2: Kiểm Tra Cấu Hình directadmin.conf

Kiểm tra xem có thiết lập tùy chỉnh cổng 80 trong file cấu hình của DirectAdmin hay không:

sudo nano /usr/local/directadmin/conf/directadmin.conf

Tìm Kiếm:

  • Mở file directadmin.conf và tìm các dòng liên quan đến cổng 80 hoặc 8080.
  • Đảm bảo rằng không có thiết lập nào tùy chỉnh cổng 80 hoặc 8080 làm ảnh hưởng đến Nginx.

Ví Dụ:

# Ví dụ về thiết lập cổng trong directadmin.conf
# Đảm bảo rằng các thiết lập sau không gây xung đột
web_server=nginx_apache
apache_port=80
nginx_port=8080

Bước 3: Cập Nhật và Viết Lại Cấu Hình Với CustomBuild 2

Để sửa các cấu hình và cập nhật lại hệ thống, hãy sử dụng các lệnh sau:

cd /usr/local/directadmin/custombuild
./build update
./build rewrite_confs

Giải Thích:

  • ./build update: Cập nhật các gói và CustomBuild lên phiên bản mới nhất.
  • ./build rewrite_confs: Viết lại các file cấu hình dựa trên thiết lập hiện tại của bạn.

Bước 4: Khởi Động Lại Nginx

Sau khi đã cập nhật và viết lại cấu hình, hãy thử khởi động lại Nginx:

sudo service nginx restart

Giải Thích:

  • Lệnh này sẽ khởi động lại dịch vụ Nginx và áp dụng các cấu hình mới.

Bước 5: Kiểm Tra Lại Cấu Hình và Trạng Thái Dịch Vụ

Đảm bảo rằng Nginx đang hoạt động đúng cách:

sudo service nginx status

Giải Thích:

  • Kiểm tra trạng thái của Nginx để đảm bảo nó đang chạy mà không gặp lỗi nào.

Bước 6: Thêm Tên Miền Mới Lại

Bây giờ, hãy thử thêm tên miền mới trong DirectAdmin để kiểm tra xem lỗi đã được khắc phục hay chưa.

4. Giải Pháp Chi Tiết Cho Trường Hợp Cổng 8080 Đã Được Sử Dụng

Nếu bạn đã xác định rằng cổng 8080 đang được sử dụng bởi một dịch vụ khác và bạn không muốn dừng dịch vụ đó, bạn có thể thay đổi cổng mà Nginx sử dụng.

Bước 1: Thay Đổi Cổng Trong Cấu Hình Nginx

Mở file cấu hình Nginx:

sudo nano /etc/nginx/nginx.conf

Tìm và Thay Đổi:

  • Tìm dòng listen 8080; và thay đổi sang một cổng khác không bị sử dụng, ví dụ listen 8081;.
server {
listen 8081;
server_name yourdomain.com;
...
}

Bước 2: Cập Nhật directadmin.conf Nếu Cần Thiết

Nếu DirectAdmin có thiết lập liên quan đến cổng 8080, hãy thay đổi chúng tương ứng:

sudo nano /usr/local/directadmin/conf/directadmin.conf

Thay Đổi:

  • Nếu có dòng nginx_port=8080, thay đổi thành cổng mới bạn đã chọn, ví dụ nginx_port=8081.
nginx_port=8081

Bước 3: Cập Nhật và Viết Lại Cấu Hình Với CustomBuild 2

Chạy lại các lệnh cập nhật:

cd /usr/local/directadmin/custombuild
./build update
./build rewrite_confs

Bước 4: Khởi Động Lại Nginx

sudo service nginx restart

Bước 5: Kiểm Tra Lại

Đảm bảo rằng Nginx đang chạy trên cổng mới và không gặp lỗi:

sudo service nginx status

Kiểm Tra Kết Quả:

  • Mở trình duyệt và truy cập vào https://yourdomain.com để kiểm tra xem website hoạt động bình thường hay không.

5. Xử Lý Các Trường Hợp Khác

Trường Hợp: Không Thể Xóa Domain Trong DirectAdmin

Nếu bạn đã cố gắng thêm domain nhưng vẫn gặp lỗi “Already Exists” sau khi xóa, hãy thực hiện các bước sau:

Bước 1: Kiểm Tra Trong DNS Administration

  1. Truy cập DNS Administration:
    • Truy cập: https://your-server-ip:2222/CMD_DNS_ADMIN
  2. Tìm và Xóa Domain Nếu Còn Tồn Tại:
    • Nếu domain vẫn xuất hiện trong danh sách, hãy xóa nó.

Bước 2: Sử Dụng SSH Để Xóa Domain Trực Tiếp

Nếu bạn không thể xóa domain qua giao diện DirectAdmin, hãy sử dụng quyền root để xóa domain trong file domains.list.

  1. Kết Nối Vào Server Qua SSH Với Quyền Root:
ssh root@your_server_ip
  1. Mở File domains.list:
nano /usr/local/directadmin/data/users/yourusername/domains.list
  1. Tìm và Xóa Dòng Chứa Domain:
    • Tìm dòng chứa tên miền cần xóa và xóa nó.
  2. Lưu File và Thoát:
    • Nhấn CTRL + O để lưu và CTRL + X để thoát.
  3. Khởi Động Lại DirectAdmin:
service directadmin restart

6. Tổng Kết:

Nếu Bạn Sử Dụng Hosting Thông Thường:

  1. Kiểm Tra Trùng Lặp Domain:
    • Xác định xem bạn có đang thêm trùng domain đã thêm hay không.
  2. Liên Hệ Nhà Cung Cấp Hosting:
    • Nếu không trùng, hãy liên hệ với nhà cung cấp hosting để kiểm tra lỗi.

Nếu Bạn Sử Dụng VPS:

  1. Sử Dụng SSH Với Quyền Root:
    • Xóa domain trong file domains.list.
  2. Cập Nhật Cấu Hình Và Khởi Động Lại Dịch Vụ:
    • Chạy các lệnh cập nhật và khởi động lại Nginx.

7. Lưu Ý Quan Trọng:

  • Sao Lưu Dữ Liệu: Trước khi thực hiện bất kỳ thay đổi nào, hãy đảm bảo bạn đã sao lưu dữ liệu quan trọng để tránh mất mát không mong muốn.
  • Kiểm Tra Cấu Hình: Luôn kiểm tra cấu hình sau khi thay đổi để đảm bảo không có lỗi cú pháp.
  • Quản Lý Quyền Truy Cập: Đảm bảo chỉ có người quản trị hoặc người có quyền truy cập cần thiết mới thực hiện các thay đổi trên server.

8. Kết Luận

Bằng cách làm theo các bước hướng dẫn trên, bạn có thể dễ dàng xác định nguyên nhân và khắc phục sự cố để đảm bảo rằng Nginx hoạt động bình thường và có thể phục vụ các tên miền mới mà bạn thêm vào.


Chúc bạn thành công trong việc quản lý và khắc phục các sự cố trên DirectAdmin Hosting! Nếu bạn có bất kỳ câu hỏi nào thêm, hãy cho tôi biết nhé!

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *