Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

PHP FastCGI ngẫu nhiên / Thiết lập lại kết nối bằng tiêu đề ngang hàng / không đầy đủ

Vấn đề này nói chung không chỉ dành riêng cho Máy chủ lưu trữ mà còn liên quan đến nhà phát triển, tùy thuộc vào cấu hình. Tuy nhiên, một số máy chủ lưu trữ khá nghiêm ngặt với FastCGI và sẽ giới hạn khả năng của bạn. Nói chung, nó dễ chạy hơn mà không sử dụng FastCGI và chỉ sử dụng mod_php trừ khi bạn có nhu cầu cụ thể để sử dụng FastCGI trong ứng dụng của bạn.

Chúng tôi cần xem trình bao bọc fcgi của bạn (có trong /dev/shm/blackmou-php.fcgi) hoặc .htaccess để tạo FastCGI, để hỗ trợ bạn tốt hơn mà không cần biết tệp nào và mã có trên các tệp đó mà sự cố xảy ra với. Ngoài ra, máy chủ của bạn có sử dụng Apache, LightHttpd hoặc Nginx (hoặc kết hợp) không? Tại thời điểm đó, tôi thực sự khuyên bạn nên cập nhật để sử dụng PHP 5.3.9+

Vì điều này có thể do bất kỳ sự cố nào gây ra, FastCGI ngăn chặn hiệu quả trang web / tập lệnh của bạn khỏi bị tấn công bởi Từ chối dịch vụ hoặc bị treo do rò rỉ bộ nhớ, v.v. (EG:cố gắng xử lý 80.000 kết nối đơn giản bằng cách giảm và giới hạn số lượng yêu cầu hoặc bị mắc kẹt trong một vòng lặp vô tận do hết thời gian và kết thúc quá trình)

Lỗi này nói riêng thường do thời gian chờ (mặc định là 30 giây) hoặc giới hạn quy trình con tối đa gây ra, cũng có thể do ai đó khởi động một tập lệnh đang chạy dài và đóng trình duyệt / kết nối của họ trước khi tập lệnh hoàn tất.

FastCGI khởi chạy trình bao bọc quy trình của nó, thực thi một lệnh, hết thời gian trước khi hoàn tất quy trình, kết nối được xem như được thiết lập lại bởi ngang hàng.

Một ví dụ khác là đạt đến số con tối đa (maxProcesses) (EG:rất nhiều trang web hiển thị 2 hoặc 4 làm ví dụ trong khi thực tế bạn có thể cần 20 hoặc 50 tùy thuộc vào lưu lượng truy cập trung bình) Nếu tất cả các con hiện đang hoạt động và một yêu cầu bổ sung / kết nối được thực hiện, các phần tử con bị giới hạn ở maxProcesses, FastCGI sẽ không chia sẻ các phần tử con đang hoạt động, vì vậy trước tiên nó phải kết thúc quá trình và bắt đầu một quy trình con mới hoặc bỏ yêu cầu, tùy thuộc vào cấu hình của bạn.

Dưới đây là một số thông tin khác về cài đặt:

http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html

http://www.fastcgi.com/drupal/node/10

Ví dụ về trình bao bọc

PHP_FCGI_CHILDREN=0 #no limit
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=10000
export PHP_FCGI_MAX_REQUESTS

CẬP NHẬT

Thêm vào đó, điều này cũng có thể do giới hạn bộ nhớ php gây ra

Nếu cách trên không giải quyết được sự cố của bạn, hãy cập nhật php.ini của bạn để tăng memory_limit



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Grails 3 - Gradle dependecies Mysql Connector

  2. Chèn Mysql vào 2 bảng

  3. MySQL - Sửa lỗi - Mục nhập trùng lặp lỗi cơ sở dữ liệu WordPress cho khóa CHÍNH cho truy vấn CHÈN VÀO wp_options

  4. Câu lệnh chuẩn bị MySQLi với truy vấn cập nhật động

  5. Sử dụng múi giờ trong ứng dụng web PHP