Điểm:0

Làm cách nào để cache PHP trên nginx?

lá cờ in
Sam

Nói rằng tôi đang tạo một trang web tin tức trên ví dụ.comvà bây giờ tôi có example.com/latest.php, đây là tập lệnh thực hiện nhiều truy vấn và tôi muốn cải thiện hiệu suất. Làm cách nào tôi có thể định cấu hình php/nginx để nó tạo bộ đệm và khi khách truy cập đến, bộ đệm sẽ được gửi, vì vậy họ sẽ không phải đợi quá lâu.
PS: Trên example.com/donotcache.php, tôi không muốn nó được lưu vào bộ đệm (tập lệnh đếm người dùng), phải làm thế nào? danh sách câu hỏi:

  1. Tôi cần những mô-đun nào?
  2. Những sửa đổi cần làm trên cấu hình nginx?
  3. Điều gì xảy ra nếu tôi cần sử dụng CSP (Chính sách bảo mật nội dung) nonce (Sau đó, mọi trang đều động)?
lá cờ us
Điều đầu tiên bạn nên làm là kiểm tra cấu trúc và chỉ mục cơ sở dữ liệu của mình. Nếu bạn muốn sử dụng CSP nonce, thì bạn không thể cache trong nginx. cấu hình bộ nhớ đệm nginx phụ thuộc vào cấu hình hiện tại của bạn, vì vậy vui lòng thêm đầu ra của `nginx -T` vào câu hỏi để có thể thêm các lệnh tương ứng.
mforsetti avatar
lá cờ tz
bạn muốn thu thập thông tin về tải của mình trước khi làm bất cứ điều gì. theo dõi và lập hồ sơ ứng dụng web của bạn trước khi quyết định thực hiện những tối ưu hóa nào.
Điểm:-1
lá cờ in

Bạn sẽ có thể sử dụng mã OPcache trong chính php để đảm bảo rằng bạn không biên dịch php với mỗi lượt khách truy cập vào trang web của bạn. Xin lưu ý rằng điều này sẽ yêu cầu phân bổ bộ nhớ hệ thống để giữ tệp php đã biên dịch được lưu trong bộ nhớ cache. Nó có thể nhanh hơn nhiều nếu tỷ lệ trúng của bạn đủ cao. Nếu bạn có bộ nhớ để làm điều đó, bạn thậm chí có thể định cấu hình bộ đệm truy vấn MySQL của mình để giữ kết quả truy vấn. Tuy nhiên, có một sự đánh đổi với lượng bộ nhớ mà mọi thứ yêu cầu và lượng bộ nhớ bạn có. Trao đổi sẽ giết chết hiệu suất của bạn. Hiệu suất kém sẽ làm giảm lưu lượng truy cập trang web của bạn... đó là một hành động cân bằng tinh tế.

Nếu bạn sử dụng các gói php từ kho lưu trữ nào đó ở đâu đó, hãy tìm mô-đun OPcache trong php. Nếu bạn đang biên dịch nó, hãy đảm bảo rằng bạn đã bật OPcache khi biên dịch. Bạn không cần phải nói với nginx bất cứ điều gì về OPcache. Đặt kích thước bộ đệm của bạn trong php.ini cấp hệ thống và bạn đã sẵn sàng khuấy động!

lá cờ cn
Cả hai đều không thực sự trả lời câu hỏi, nhưng hãy chạm vào những gì bạn đã nói. PHP OPCache không cần bộ nhớ, vì trong các phiên bản gần đây, nó giới thiệu OPcache dựa trên tệp. Bộ đệm truy vấn MySQL, nếu bạn đề cập đến bộ đệm trong chính máy chủ MySQL, không được dùng trong các phiên bản MySQL không gần đây, đủ để nói rằng trong 8.0, nó hoàn toàn không có sẵn. Cuối cùng, tôi nghĩ OP có nghĩa là hỏi về bộ đệm toàn trang. và nó được thực hiện trong NGINX (fastcgi cache) *or* Varnish, v.v.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.