Lỗi 403 Forbidden Nginx là lỗi thường gặp của các nhà làm web. Nếu như bạn cũng đang gặp phải vấn đề này đừng lo lắng và đọc ngay bài viết dưới đây để khắc phục ngay nhé!
Lỗi HTTP rất khó giải quyết và thường khó giải quyết nếu không có công cụ phù hợp. Tuy nhiên, với công cụ và điều tra thích hợp, bạn có thể dễ dàng xác định nguồn gốc của vấn đề và khắc phục nó nhanh chóng. Để gỡ lỗi hoặc sửa lỗi 403 Forbidden Nginx, tất cả những gì bạn phải làm là kiểm tra nhật ký lỗi chính xác và thực hiện hành động thích hợp để giải quyết nó. Chúng ta sẽ xem xét cách kiểm tra nhật ký lỗi và các trường hợp có thể xảy ra thường gây ra những lỗi này.
Trên thực tế, lỗi 403 Forbidden Nginx thường xảy ra trên WordPress site và các CMS khác. Đây là lỗi do công ty hosting của website bạn cập nhật thay đổi gì đó ở hệ thống hoặc do một số nguyên do khác.
DỊCH VỤ GỠ MÃ ĐỘC VÀ BẢO VỆ WEBSITE WORDPRESS
I. Lỗi 403 Forbidden Nginx là gì?
Lỗi 403 Forbidden có nghĩa là bạn không có quyền truy cập vào phần đó của web. Lỗi này có thể do nhiều nguyên nhân gây ra và ở đây chúng ta sẽ thảo luận từng nguyên nhân một.
XEM THÊM: [Tổng hợp] Các dạng lỗi trang web thường gặp khi quản trị website
Lỗi 403 Forbidden Nginx là cách của Nginx để nói rằng “Bạn đã yêu cầu một tài nguyên nhưng chúng tôi không thể cung cấp cho bạn.” Các lỗi sẽ giống như hình ảnh bên dưới.
Lỗi 403 Forbidden Nginx về mặt kỹ thuật không phải là một lỗi mà là một mã trạng thái HTTP. Các tiêu đề phản hồi 403 được trả lại một cách cố ý trong nhiều trường hợp như:
- Người dùng bị chặn yêu cầu trang / tài nguyên đó hoặc toàn bộ trang web.
- Người dùng cố gắng truy cập một thư mục nhưng autoindex được đặt thành tắt.
- Người dùng cố gắng truy cập một tệp chỉ có thể được truy cập nội bộ.
- Sự cố với tài nguyên internet trên máy tính của người dùng.
- Nhập địa chỉ trang web không chính xác;
- Thay đổi tài nguyên trên trang web;
- IP của người dùng đã bị chặn do vi phạm chính sách trang web hoặc bị cấm vì các lý do khác.
- Trình duyệt đã hết thời gian chờ.
Khi nói đến lý do từ phía quản trị viên trang web, các lý do khiến lỗi 403 Forbidden Nginx xảy ra là khác nhau:
- Trang chỉ mục đã bị hỏng hoặc được đổi tên bằng một tên khác.
- Trang chỉ mục nằm trong thư mục mà tham số chỉ mục tự động tắt.
- Các tệp cần được tải có quyền đối với tệp không chính xác.
- Tệp có định dạng không chính xác.
- Bạn gặp lỗi khi cố gắng cập nhật bộ đệm DNS bằng cách thay đổi máy chủ.
- Cấu hình .httacess không chính xác hoặc trong tệp cấu hình khác từ máy chủ.
II. Hiển thị lỗi 403 Forbidden Nginx thường gặp
- HTTP 403
- Forbidden: You don’t have permission to access [directory] on this server
- Forbidden
- 403 forbidden request forbidden by administrative rules
- Error 403
- HTTP Error 403.14 – Forbidden
- Error 403 – Forbidden
- HTTP Error 403 – Forbidden
- 403 Forbidden
- Access Denied You don’t have permission to access
Đây là một số lỗi thường hiển thị trong website. Vậy lý do xảy ra lỗi này do đâu?
III. Nguyên nhân gây ra lỗi 403 Forbidden Nginx
Như đã nói ở trên, lỗi 403 Forbidden Nginx thường do công ty hosting của website bạn cập nhật thay đổi gì đó ở hệ thống hoặc do một số nguyên nhân khác như:
- Cấu hình của file .htaccess bị hỏng hoặc file permissions không tương thích.
- Trang chỉ mục đã bị hỏng hoặc được đổi tên bằng một tên khác.
- Trang chỉ mục nằm trong thư mục mà tham số chỉ mục tự động tắt.
- Các tệp cần được tải có quyền đối với tệp không chính xác.
- Tệp có định dạng không chính xác.
- Bạn gặp lỗi khi cố gắng cập nhật bộ đệm DNS bằng cách thay đổi máy chủ.
- Lỗi 403 thường xảy ra khi cố truy cập vào trang web hoặc nguồn không có quyền truy cập.
Vậy bạn đã biết được lỗi 403 forbidden Error do đâu rồi thì cùng đến với cách xử lý nó ngay đây nhé!
IV. Cách fix lỗi 403 forbidden Nginx
Lỗi 403 forbidden Error Nginx xuất phát từ rất nhiều lý do như đã kể phía trên. Vậy nếu bạn chưa rõ mình đã mắc phải lý do nào thì hãy thử ngay 3 phương pháp dưới đây để xử lý lỗi này ngay.
1. Khắc phục lỗi do file .htaccess hỏng hoặc file permissions không tương thích
Nguyên nhân khiến lỗi 403 Forbidden xảy ra có thể do file .htaccess bị lỗi. Nếu vậy thì cũng khá giản đơn không nhất thiết lo lắng.
XEM THÊM: Tìm hiểu file htaccess WordPress mới nhất
- Bước 1: Truy cập vào hosting bằng cPanel, FTP Client hoặc DirectAdmin tùy thuộc vào đơn vị cung cấp hosting của bạn. Sau đó tìm đến File Manager.
- Bước 2: Mở thư mục public_html để tìm tệp .htaccess. Nếu bạn không thể tìm thấy tệp, hãy nhấp vào Cài đặt (Settings) ở góc trên bên phải của màn hình và bật tùy chọn Show Hidden Files (dotfiles).
- Bước 3: Nhấp chuột phải vào tệp .htaccess và chọn Download (Tải xuống) để tạo bản sao lưu rồi xóa tệp .htaccess đó.
- Bước 4: Hãy thử truy cập trang web của bạn. Nếu nó hoạt động tốt, điều này cho thấy rằng tệp .htaccess đã bị lỗi.
- Bước 5: Để tạo một tệp .htaccess mới, hãy đăng nhập vào WordPress Dashboard của bạn và nhấp vào Settings -> Permalinks.
- Bước 6: Không thực hiện bất kỳ thay đổi nào, hãy nhấp vào nút Save Changes (Lưu thay đổi) ở cuối trang. Thao tác này sẽ tạo một tệp .htaccess mới cho trang web của bạn.
Nếu cách này không giải quyết được sự cố, hãy thử phương pháp tiếp theo.
2. Đặt lại quyền đối với tệp và thư mục
Một nguyên nhân khác có thể gây ra lỗi HTTP 403 là quyền đối với tệp hoặc thư mục không chính xác. Nói chung, khi tệp được tạo, chúng đi kèm với các quyền đối với tệp mặc định cụ thể, quyền này kiểm soát cách bạn có thể đọc, ghi và thực thi chúng.
- Bước 1: Định cấu hình FTP Client và kết nối nó với website của bạn
- Bước 2: nhấp chuột phải vào public_html và chọn File Attributes.
- Bước 3: Nhập quyền 755 vào trường Numeric value, chọn Apply to directories only và nhấn OK. Thông thường các chỉ số File Permission Numeric value sẽ là 755 cho các thư mục (folders), 644 cho nội dung tĩnh (static content) và 700 cho nội dung động (dynamic content).
- Bước 4: Sau khi thay đổi quyền của thư mục, hãy lặp lại bước 2 và bước 3, nhưng bây giờ hãy nhập 644 vào trường Numeric value và chọn tùy chọn Apply to files only.
- Bước 5: Sau khi hoàn tất, hãy thử truy cập vào trang web của bạn và xem lỗi có được giải quyết hay không.
3. Loại bỏ các Plugin/Extension không tương thích
Nếu bạn đã tới bước này và không có phương pháp nào trước đó hoạt động, rất có thể lỗi là do plugin không tương thích hoặc bị lỗi. Trong bước này, chúng ta sẽ thử tắt plugin để kiểm tra xem làm như vậy có khắc phục được lỗi 403 Forbidden hay không.
Chúng tôi khuyên bạn nên tắt tất cả các plugin cùng một lúc thay vì thực hiện từng bước một. Làm theo phương pháp này, bạn sẽ có thể phát hiện ra vấn đề và hướng tới giải pháp. Đây là những gì bạn sẽ phải làm:
- Bước 1: Truy cập tài khoản lưu trữ của bạn qua FTP hoặc sử dụng trình quản lý tệp (file manager) của đơn vị cung cấp hosting cho bạn. Tìm tới thư mục public_html -> wp-content.
- Bước 2: Tìm thư mục plugins
- Bước 3: Đổi tên thư mục bằng một tên khác, chẳng hạn như “disabled-plugins” để tắt tất cả các plugin.
- Bước 4: Hãy thử truy cập lại trang web. Nếu lỗi không còn xuất hiện thì nguyên nhân thực sự gây ra lỗi 403 trên website của là một trong các plugin..
- Bước 5: Đổi tên thư mục trở lại là “plugins”. Bây giờ bạn phải tắt từng plugin một từ bảng điều khiển WordPress của mình và kiểm tra xem trang web có còn hoạt động hay không.
- Bước 6: Bằng cách này, bạn sẽ có thể phát hiện plugin bị lỗi. Khi bạn tìm thấy, hãy cập nhật plugin nếu cần hoặc xóa nó. Tuy nhiên, nếu lỗi vẫn xuất hiện, bạn có thể phải liên hệ với nhà cung cấp hosting của mình để được hỗ trợ.
V. Fix lỗi 403 Forbidden Nginx do lỗi HTTPS
Đường dẫn cho nhật ký lỗi Nginx có thể thay đổi rất nhiều tùy thuộc vào cách Nginx được cài đặt trên máy chủ và bản phân phối Linux. Nếu bạn không biết nhật ký lỗi (error logs) của mình ở đâu và bạn gặp khó khăn trong việc cấu hình Nginx, chúng ta có thể sử dụng một công cụ Linux rất nhỏ và hữu ích có tên lsof cung cấp cho chúng ta tất cả các tệp đang mở liên quan đến một quy trình cụ thể. Điều này sẽ giúp tìm thấy nhật ký lỗi cho máy chủ web của bạn
Bước đầu tiên của việc này là kiểm tra ID quy trình của quy trình Nginx chính, bạn có thể chạy lệnh sau và ngoại trừ đầu ra hơi giống với lệnh được chỉ ra bên dưới:
$ ps x | grep nginx 29229 ? S 0:00 nginx: master process /usr/sbin/nginx
$ lsof -p 29229 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 29229 root cwd DIR 202,1 4096 2 / nginx 29229 root rtd DIR 202,1 4096 2 / nginx 29229 root txt REG 202,1 843656 1182 /usr/sbin/nginx ... nginx 29229 root 2w REG 202,1 0 262748 /var/log/nginx/error.log ...
1. Sửa lỗi Nginx HTTP
Sau khi bạn có tệp nhật ký lỗi chính xác, đã đến lúc để tìm lỗi. Theo kinh nghiệm của chúng tôi, cách tốt nhất để làm điều này là chạy một dòng liên tục của nhật ký lỗi trong màn hình shell của bạn bằng tiện ích đuôi.
$ tail -f /var/log/nginx/error.log
Khi bạn đã chạy lệnh này, tail sẽ liên tục xuất mọi nội dung mới được thêm vào lỗi. Nhật ký xuất hiện cho đến khi bạn nhấn Control + C. Chúng tôi khuyên bạn nên xóa toàn bộ màn hình shell để dễ dàng xác định nội dung mới được thêm vào.
2. Cài đặt thư mục không chính xác
2013/08/31 15:03:43 [error] 29231#0: *2098806 directory index of "/usr/share/nginx/static/" is forbidden, client: 1.1.1.1, server: domain.com, request: "GET / HTTP/1.1", host: "domain.com"
Nếu bạn đang cố gắng liệt kê tất cả các tệp trong một thư mục, bạn sẽ gặp lỗi đó nếu thư mục đó không bật danh sách thư mục.
Bạn có thể bật danh sách thư mục bằng cách thêm dòng sau vào cấu hình Nginx của mình, bạn có thể đọc thêm về tùy chọn này tại đây:
autoindex on;
Một khả năng khác dẫn đến lỗi đó là nếu cài đặt chỉ mục của bạn không chính xác, ví dụ: bạn có tệp index.php trong thư mục đó, tuy nhiên, cài đặt chỉ mục của bạn được thiết lập thành index.htm và index.html.
Điều này có nghĩa là chỉ những tệp này mới được kiểm tra nếu không có tệp cụ thể nào được cung cấp. Nếu bạn thay đổi nó thành một cái gì đó giống như sau, tệp index.php của bạn sẽ hoạt động:
index index.htm index.html index.php;
3. Permissions không chính xác
Lỗi bên dưới nói chung là do quyền Unix không chính xác, bạn sẽ cần đảm bảo rằng mình có quyền chính xác cho toàn bộ đường dẫn.
2013/09/01 00:31:57 [error] 29231#0: *2115270 open() "/usr/share/nginx/static/forbidden" failed (13: Permission denied), client: 1.1.1.1, server: domain.com, request: "GET /forbidden HTTP/1.1", host: "domain.com"
Như bạn thấy, tệp mà chúng tôi đang cố gắng truy cập là /usr/share/nginx/static/forbidden. Để Nginx có thể truy cập nó mà không gặp vấn đề gì, Nginx phải có quyền đọc cho tệp cụ thể đó cũng như thực thi cho tất cả các thư mục bên trên nó. Điều này có nghĩa là /, /usr, /usr/share, /usr/share/nginx và /usr/share/nginx/static phải được thực thi bởi Nginx và tệp /usr/share/nginx/static/forbidden phải được đọc bởi Nginx trong trường hợp này.
Tổng kết
ATPWEB – Xây dựng ngôi nhà Online
Liên hệ:
- Hotline: 0707 6666 56
- Fanpage: http://facebook.com/atpweb.vn
- Website: atpweb.vn