Là Varnish với nginx tốt hơn so với chỉ sử dụng nginx? [đóng cửa]


22

Tôi thấy rất nhiều cuộc nói chuyện về việc sử dụng nginx với Varnish và tôi không hiểu tại sao. Không đủ nginx?

Nginx có SSI, có bộ đệm proxy ngược, nhẹ, có SSL, có thể hoạt động với cgi, fpm, v.v.

Varnish có những thứ tương tự, nhưng không có ssl, và không hỗ trợ cgi.


"Tốt hơn" là thực sự chủ quan. Nó phụ thuộc vào trường hợp sử dụng của bạn ...
voretaq7

7
Đôi khi một câu hỏi đơn giản làm công việc tốt hơn những câu hỏi phức tạp. Tôi rất quan tâm đến những hành động như vậy từ những người đã đóng câu hỏi này với giả định rằng nó không tốt cho "định dạng Hỏi & Đáp gốc". Tôi đang tìm kiếm về chủ đề này và tôi rất thích thú khi thấy kết quả của cuộc tranh luận này.
Roger

véc ni có cấu hình vcl mạnh mẽ, thanh lọc, bộ đệm proxy ngược, ESI nginx có thể hoạt động với FCGI, bộ đệm proxy ngược, ssi, không thanh lọc (có thể có một mô-đun) hiệu năng khôn ngoan, chúng gần như giống nhau cho các tệp tĩnh, bộ đệm ... bạn có bất kỳ câu hỏi nào tôi có thể giúp đỡ
Bogdan Cosmin

Câu trả lời:


14

Tôi đã tìm thấy véc ni nhanh hơn ~ 5% đối với các tệp tĩnh nhỏ so với nginx - véc ni trước apache, hoặc véc ni trước máy chủ ứng dụng web sẽ thu được lợi lớn; nhưng trước nginx, lợi ích là không đáng kể (đặc biệt là chi phí chung và tính phức tạp thêm được tính đến)


Bạn có thể cung cấp một số kết quả kiểm tra để hỗ trợ này? Điều gì xảy ra nếu tôi đã sử dụng nginx + opcache. Có bất kỳ lợi ích của việc sử dụng véc ni sau đó?
Nghiêm trọng

23

Đầu tiên, để làm rõ: Nginx là một máy chủ web, với tất cả các tính năng và độ phức tạp đòi hỏi. Nó cũng có khả năng lưu trữ, nhưng đó không phải là mục tiêu thiết kế chính của nó.

Varnish không phải là một máy chủ web. Nó không thể lấp đầy vai trò đó (dù sao không phải không có một VCL thực sự xấu xa). Vai trò của nó là lưu trữ nội dung được cung cấp bởi một máy chủ khác. Nếu cần, nó có thể thay đổi yêu cầu hoặc phản hồi.

Nếu nginx có thể xử lý lưu lượng của bạn, thì nó là đủ. Nếu nginx không thể theo kịp, thì một cách để tăng dung lượng là bằng cách đặt bộ đệm trước nó và có bộ đệm xử lý càng nhiều yêu cầu càng tốt.

Ví dụ, chúng tôi sử dụng Apache để chạy một số trang web PHP tương đối phức tạp từ một cụm máy chủ web. Khi chúng tôi bắt đầu gặp vấn đề về dung lượng, chúng tôi đã đặt một cặp máy chủ Varnish trước cụm Apache. Các máy chủ Varnish hiện xử lý 85% tất cả các yêu cầu đến mà không làm phiền đến phụ trợ Apache.


Vì vậy, Varnish lưu trữ nội dung động do PHP tạo ra? Hay chỉ là những thứ khác?
Alix Axel

Varnish lưu trữ bất cứ điều gì bạn nói với bộ nhớ cache. Nó có thể lưu trữ chỉ bộ đệm đầu ra PHP, chỉ các tệp tĩnh, cả hai hoặc không. Đó là một công cụ rất mạnh mẽ.
Insyte

Tôi đã hỏi về ví dụ cụ thể của bạn. Nó gây khó khăn cho tôi về cách có thể lưu trữ nội dung động mà không làm rối ứng dụng động (phiên PHP cho người mới bắt đầu). Bộ nhớ đệm nội dung có vẻ hơi dư thừa đối với tôi.
Alix Axel

3
Nó phụ thuộc vào nội dung động. Nói, ví dụ, trang là một bài đăng blog với ý kiến. Nó có thể cực kỳ tốn kém để tạo chủ đề bình luận nhưng hoàn toàn chấp nhận được để lưu nó trong 5 phút. Mặt khác, bộ nhớ đệm nội dung động được trả về bởi một ứng dụng webmail rõ ràng là có vấn đề. Bạn thậm chí có thể tạo một trường hợp hỗn hợp: Lưu trữ toàn bộ đầu ra của một ứng dụng thương mại điện tử, nhưng nói với véc ni để gọi lại cho phụ trợ để điền vào chỉ báo giỏ hàng.
Insyte
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.