Nginx chia sẻ wordpress lưu trữ

Đây là một bài viết của khách Austin W. Gunter, các Đại sứ thương hiệu của WP Engine của Managed WordPress Hosting Platform.

sự phát triển của WordPress đã được đan xen với Apache ngay từ đầu. WordPress được xây dựng để được phục vụ trên Apache. Gần đây Nginx đã tăng lên đáng kể để phục vụ giao thông từ 11,4% của tất cả lưu lượng được biết đến.

Automattic chuyển WordPress.com qua Nginx, và quản lý host WordPress như WP Engine, và ZippyKid đã áp dụng công nghệ này là tốt. WordPress.com đã công khai tuyên bố họ có hàng ngàn máy chủ phục vụ hàng trăm ngàn yêu cầu mỗi giây. Tôi dành phần lớn ngày tôi nói về công nghệ máy chủ phức tạp, nhưng tôi đã không tìm thấy một nguồn lực tốt để thực sự giải thích, về đàm thoại, tại sao Nginx là mát mẻ, tại sao mọi người đang sử dụng nó, và những gì mà đánh đổi là giữa nó và Apache. bài này được thiết kế để giải thích những gì Nginx là ở mức cao, không cung cấp một “làm thế nào để” cho folks người có thể muốn cài đặt nó tự.

Nginx chia sẻ lưu trữ wordpress C10k là viết tắt của đồng thời

off đầu tiên, Nginx và Apache không bằng nhau, nhưng những gì làm cho họ khác nhau? Có gì làm cho Nginx phù hợp để xử lý hiệu suất web cao nhiệm vụ lưu trữ - chẳng hạn như phục vụ một sự tấn công của yêu cầu đồng thời khi một bài làm cho các trang bìa của HackerNews hoặc Reddit? Điều gì làm bạn vẫn cần Apache cho?

CK10 vấn đề

Nginx được phát triển, một phần, để giải quyết vấn đề C10k, hoặc tối ưu hóa phần mềm máy chủ web để xử lý một số lượng lớn các khách hàng cùng một lúc. C10k là viết tắt của đồng thời vạn kết nối. Khi một bài đăng blog lượt truy cập các trang bìa của HackerNews hoặc Reddit, hàng ngàn du khách có thể đến trang web của bạn cùng một lúc. Nginx là dựa trên sự kiện, và là tuyệt vời tại đáp ứng yêu cầu đồng thời.

Kết nối đồng thời

Nginx được thiết kế để xử lý hàng ngàn kết nối đồng thời với việc sử dụng ít tài nguyên CPU. Nó là một non-blocking máy chủ web hướng sự kiện, sử dụng một quá trình duy nhất (hoặc một số nhỏ các quá trình) để xử lý các kết nối sử dụng evented I / O. Apache có một số module Multi-Processing ( “MPM”), nhưng đối với hầu hết các hệ thống Linux, mặc định của Apache là “prefork” MPM. Apache khuyến cáo sử dụng “công nhân” MPM trừ khi bạn đang sử dụng PHP - kể từ PHP không phải là thread an toàn. Một đoạn mã là thread-an toàn nếu nó chỉ thao tác cấu trúc dữ liệu được chia sẻ theo cách đảm bảo thực hiện an toàn bằng nhiều luồng cùng một lúc. Nginx của sự kiện dựa trên”thiết kế cho phép nó để phục vụ dữ liệu một cách nhanh chóng, và với nhiều kết nối đồng thời, nhưng chúng tôi hy sinh khả năng của Apache để xử lý PHP

Thêm vào đó, Apache bị hạn chế bởi có bao nhiêu bài nó có CPU để chạy, và các quá trình Apache là tốn kém. Tại 50-300MB cho mỗi quá trình, sau khi quá trình đồng thời, mặc định là 256, hiệu suất của Apache sẽ giảm. Nginx, mặt khác, có thể xử lý 10.000 kết nối đồng thời sử dụng khoảng 2MB bộ nhớ, không bao giờ đẻ trứng đề hoặc quy trình mới. Đó là vô lý mở rộng.

lưu trữ

Tài sản tĩnh

Nginx là vua phục vụ tĩnh học. Trong trường hợp Apache có để tải mod_php vào bộ nhớ để phục vụ yêu cầu hình ảnh, Nginx sẽ cung cấp tĩnh như hình ảnh, javascript, css, html, vv trực tiếp đến trình duyệt với lòng đam mê của mình nhanh I / O. Về mặt lý thuyết, Nginx chỉ chuyển dữ liệu, không bao giờ chế biến nó, đó là lý do nó đòi hỏi quá ít nguồn lực để chạy.

Vì vậy, làm thế nào để chúng tôi dịch WordPress PHP với Nginx? Apache thường bó PHP với các quá trình của nó, nhưng để xử lý PHP, Nginx cần phải được ghép nối với một quá trình bên ngoài như FastCGI, PHP-FPM, hoặc HTTP. Điều này có thể được thực hiện khá dễ dàng. Hơn thế nữa, bởi các quá trình tách chúng ta thực sự có thể xem chi tiết tăng tốc độ với Nginx. Nó sẽ chuyển tiếp yêu cầu để xử lý PHP từ bên ngoài, và gửi phản hồi trở lại cho trình duyệt.

Thêm vào đó, chúng có thể được cấu hình để xử lý yêu cầu khác nhau trên các máy chủ khác nhau. Đây là một vấn đề lớn cho máy chủ web hoặc quản trị hệ thống, bởi vì nó có nghĩa là họ có thể xác định những yêu cầu đi mà máy chủ, giảm yêu cầu công việc tồn đọng. Nó cũng có nghĩa là máy chủ và ứng dụng các quy trình có thể được khởi động lại một cách riêng biệt.

Proxy Caching

WordPress.com tận dụng nặng về khả năng Nginx để proxy_cache. Bạn có thể lập trình Nginx để gửi yêu cầu đến phụ trợ, nhưng trên đường trở ra có nó giữ yêu cầu trên đĩa cho “giây X” để các yêu cầu tiếp theo có thể phục vụ trang mà không cần phải quay trở lại Apache cho mỗi người dùng mới.

3rd Party Modules

Với Nginx đạt được nổi bật, chúng ta đang thấy các nhà phát triển bắt đầu để tạo ra module mát mẻ, chúng tôi có thể biên dịch thành Nginx mà thêm chức năng chúng ta có thể cần. Như với bất kỳ dự án mã nguồn mở, các mô-đun có thể sẽ là một nguồn quan trọng của đổi mới trên máy chủ web.

Đó là một số lợi thế rất lớn. Nhưng điều quan trọng cần lưu ý là Nginx không phải là một giải pháp thích hợp cho các giải pháp lưu trữ chia sẻ, và nó chắc chắn không cần thiết cho blog WordPress hàng ngày mà không thấy mức độ giao thông. Dưới giao thông tối thiểu, du khách có thể không nhận thấy bất kỳ sự khác biệt tốc độ giữa Apache và Nginx. Bạn muốn phục vụ WordPress tắt của Nginx nếu bạn mong đợi một ngày nào đó trải nghiệm gai giao thông, và muốn giữ tải trang web của bạn lên và ở phụ 1.5seconds. Dưới chế biến dựa trên sự kiện tải Nginx của, khả năng phục vụ một cách nhanh chóng tĩnh học, và yêu cầu proxy_cache cung cấp cho nó khả năng để phục vụ hàng chục ngàn kết nối trên 2MB của CPU. Đó giao thông cùng sẽ gây Apache để cam kết harakiri.

Bởi vì Nginx là rất khả năng mở rộng, Automattic, WordPress.com, và quản lý host WordPress như WP động cơ hoặc ZippyKid đã áp dụng công nghệ này, thường cùng với Apache để phục vụ PHP, và đang sử dụng nó để cung cấp lưu trữ ồ ạt mở rộng cho hàng chục ngàn lĩnh vực. Apache vẫn là nơi để xử lý yêu cầu phức tạp, nhưng nó không thể theo kịp với khả năng mở rộng của Nginx.

Những gì được trang web của bạn đang chạy trên? bạn đã xem xét cài đặt Nginx để phục vụ WordPress? Hãy cho tôi biết trong các ý kiến ​​những gì bạn đang sử dụng.

Chuyển sang Nginx một vài tuần trước sau khi tăng trưởng mệt mỏi vì nhận được email từ máy chủ của tôi nói rằng tôi muốn đi qua phân bổ RAM của tôi. giờ làm việc cố gắng để cấu hình trang web của tôi để đối phó với giao thông đông đúc trên Apache nhưng không có số lượng bộ nhớ đệm chỉnh .htaccess làm nên sự khác biệt. Chuyển sang Nginx, tạo ra một conf cơ bản và đã không nhìn lại. sử dụng RAM là dưới sự kiểm soát và trang web này là phản ứng nhanh hơn. Rực rỡ.

Tôi chuyển sang Nginx một năm trước đây. Tôi đã rất interessted vào dự án và không thích Lighttpd.
Hóa ra, Nginx chỉ là fantiastic, và chắc chắn là con đường để đi.
yêu cầu định tuyến với Apache feeld kinda ngu ngốc với tôi hiện nay ...

Tôi hiểu rồi. Vì vậy, đó là lý do tại sao có một số trang web (cũng thực sự tấn trong số họ) mặc dù họ đang chạy trên Apache, vẫn hoạt động tốt hơn những người với NGIX.
Oh, bằng cách này, những gì về LiteSpeed? Bất kỳ comment của wordpress chạy trên LiteSpeed? LiteSpeed ​​tuyên bố rằng họ đang 6x nhanh hơn so với Apache

Tôi không nghĩ rằng Nginx hoạt động tốt hơn Apache, không phải trong trang web wordpress. PHP và Apache cũng giống như anh trai và nhiều kịch bản được viết với Apache là máy chủ web lựa chọn đầu tiên, vấn đề duy nhất là khi Nginx là ‘hiện đại’ và xử lý bùng nổ giao thông thực sự tốt, Apache vẫn ‘cổ’ và luôn nhắm mục tiêu vào tất cả các hoạt động tròn. Vấn đề bùng nổ giao thông có thể bị xử lý với cân bằng tải. Tôi thích Apache vì đó là tất cả các buổi biểu diễn vòng. WordPress không thất bại trong việc nói mạnh dạn rằng họ không có gì chống lại Nginx nhưng Apache vẫn là lựa chọn đầu tiên - codex.wordpress.org/Nginx

bạn đã chạy bất kỳ điểm chuẩn hiệu suất để xem nếu Nginx thực sự thực hiện tốt hơn hoặc tồi tệ hơn trong môi trường của bạn? Đó là một điều cần nghĩ nó và cảm thấy nó, nhưng đó là một điều để kiểm tra nó.

Chúng tôi sử dụng Nginx đây trên WPForce.com và nó chạy rất tốt, tốt hơn nhiều so với Apache bao giờ đã làm cho chúng ta.

Tương tự như vậy, cả hai WordPress.org và WordPress.com chạy trên Nginx - WordPress.com là quá trình cài đặt đơn lớn nhất của WordPress trên Internet.

Vì vậy, tôi vừa di cư từ một máy chủ khác. máy chủ trước đó đã có trang web WP của tôi đang chạy trên Apache. Khi tôi đặt tại máy chủ mới, mặc định là Fast-CGI (và nginx tôi đoán) và không để ý hoặc chú ý đến sự khác biệt.

Tất cả mọi thứ đã được chạy tốt, và nhanh chóng, trên vps mới, nhưng sau một vài ngày tôi bắt đầu gặp “502 xấu lỗi cổng - nginx” lỗi. Nó xảy ra khi tôi đăng một bài viết trên blog, và bấm vào “xem trước.” Tôi vẫn có thể xuất bản bài đó, nhưng khi tôi làm ở đó rất nhiều phần của trang chia (cuộc gọi php khác nhau, vv) nhưng bài là có và trong sự khéo léo.

Tôi có thể khôi phục các trang web trở lại một điểm trước đó và điều này khắc phục vấn đề này trong một vài bài viết (hoặc ngày), và sau đó trở về vấn đề này.

Tôi đã làm thêm 3 plugins mới khi di chuyển (an ninh, adrotate và siêu bộ nhớ cache). Tôi đã cố gắng loại bỏ các plugin an ninh và adrotate để xem nếu đó là vấn đề, và vấn đề vẫn còn. là người duy nhất tôi đã không loại bỏ là siêu bộ nhớ cache.

bất kỳ ý tưởng về những gì có thể gây ra những lỗi 502 cổng xấu? Không bao giờ có này khi chạy trên apache.

Những bài viết liên quan

MAMP sống máy chủ lưu trữ wordpressXin chào, tôi đã bắt đầu có một số vấn đề thời gian gần đây với một trang web WordPress mà tôi xây dựng sử dụng MAMP và sau đó chuyển sang một máy chủ trực tiếp. Tôi sẽ xây dựng một trang web và khởi động nó, nó trông mịn, sau đó ...
Web hosting cho wordpress ÚcNếu bạn muốn có một trang web nhanh chóng và đáp ứng, bạn cần phải lưu trữ nó gần như là bạn có thể đến nơi mà bạn đang có. Khi xem một trang web, bạn thực hiện các yêu cầu qua lại từ máy chủ, và xa hơn ...
Tự lưu trữ vs plug-ins wordpressbởi Tim Dorr / Flickr Khi nói đến việc thiết lập trang web giả của mình, một trong những chủ đề khó hiểu hơn là tự lưu trữ: ý nghĩa của nó, tại sao nó có lợi thế, và khi bạn nên làm điều đó. Gì...
lưu trữ tốt nhất cho wordpress australia sở thúHôm nay tôi muốn có một cái nhìn tại có bao nhiêu của WordPress hàng đầu công ty lưu trữ đo lên từ hoàn toàn là một quan điểm hiệu suất. Bây giờ tôi sẽ là người đầu tiên thừa nhận rằng có các máy chủ nhanh nhất ...
Skadate lưu trữ yêu cầu cho wordpressĐể chạy WordPress chúng tôi khuyên chủ của bạn hỗ trợ: Đó là thực sự nó. Chúng tôi khuyên Apache hoặc Nginx như các máy chủ mạnh mẽ và featureful nhất để chạy WordPress, nhưng bất kỳ máy chủ hỗ trợ PHP ...