• About
  • Advertise
  • Privacy & Policy
  • Contact
NQ NEWS
  • Kiến thức tổng hợp
    • Development
    • Deep Learning
    • Cloud Computing
    • Kiến thức bảo mật
    • Tin học văn phòng
  • Thủ thuật
    • Phần Mềm
    • Sửa lỗi máy tính
    • Bảo mật máy tính
    • Tăng tốc máy tính
    • Thủ thuật Wifi
  • Quản trị hệ thống
    • Giải pháp bảo mật
    • Mail Server
    • Mạng LAN – WAN
    • Máy chủ
    • Windows Server 2012
  • Tin tức
No Result
View All Result
  • Kiến thức tổng hợp
    • Development
    • Deep Learning
    • Cloud Computing
    • Kiến thức bảo mật
    • Tin học văn phòng
  • Thủ thuật
    • Phần Mềm
    • Sửa lỗi máy tính
    • Bảo mật máy tính
    • Tăng tốc máy tính
    • Thủ thuật Wifi
  • Quản trị hệ thống
    • Giải pháp bảo mật
    • Mail Server
    • Mạng LAN – WAN
    • Máy chủ
    • Windows Server 2012
  • Tin tức
No Result
View All Result
NQ NEWS
No Result
View All Result
Home Kiến thức tổng hợp

Web Server và App Server? Phân biệt như thế nào

@admiz by @admiz
15/05/2021
in Kiến thức tổng hợp
0
Web Server Và App Server? Phân Biệt Như Thế Nào 609f4e5b459f1.jpeg

Khi bạn tìm kiếm google để deploy một Rails app, bạn sẽ nhìn thấy một loạt các cái tên như Apache, Unicorn, Puma, Phusion Passenger, Nginx, Rainbows,… vô vàn cái tên khác nữa. Tất cả chúng có vẻ đều phù hợp cho “deploying Rails”, nhưng có một từ chỉ ra sự khác biệt giữa chúng. Một số là web server và số còn lại là app server.

Khi bạn hiểu rõ cái nào là cái nào, và chúng nằm chỗ nào trong hệ thống của bạn thì việc deploy sẽ có ý nghĩa hơn rất nhiều. Tuy nhiên sự phân biệt giữa chúng không phải lúc nào cũng rõ ràng.

Thế nào là một web server, nó khác gì với một app server? Có thể chỉ dùng 1 cái mà ko cần cái còn lại không? Rồi Rack nằm ở đâu đây?

Thế nào là một web server?

Web server là một chương trình nhận request từ trang web của bạn và làm 1 vài xử lý cho request đó. Sau đó sẽ chuyển request đó cho Rails app. Nginx và Apache là 2 ông lớn web server mà bạn sẽ đụng độ.

>> Có thể bạn quan tâm:  Tất tật kiến thức cơ bản về Web Server bạn phải biết

Web Server và App Server? Phân biệt như thế nào - Ảnh 1.

Nếu request đó là thứ gì đó không thường xuyên bị thay đổi, ví dụ như một file CSS, JS hay hình ảnh, thì có thể request này không cần đến tay Rails. Web server có thể tự xử lý được mà không cần báo với app, nó sẽ nhanh hơn theo cách này.

Web servers có thể xử lý các SSL requests, cung cấp các file tĩnh và assets, nén các request lại, và có thể làm được một số việc mà hầu hết mọi website cần. Và nếu Rails app cần xử lý request, web server sẽ chuyển request đó cho app server.

Thế nào là một app server?

App server là thứ thực sự chạy trong Rails app của bạn. App server tải code của app lên và giữ app đó trong bộ nhớ. Khi app server nhận được request từ web server, nó sẽ báo lại cho Rails app. Sau khi app xử lý xong request đó, app server sẽ gửi response lại cho web server (và cuối cùng là cho người dùng).

Bạn có thể chạy hầu hết các app servers một mình, không cần có web server. Đó cũng chính là những gì bạn đã làm ở môi trường development. Ở môi trường production, thường phải cần một web server đặt phía trước. Nó sẽ xử lý nhiều app một lúc, render assets nhanh hơn và xử lý với nhiều request.

Có cả tá app servers cho Rails app, như Mongrel, Unicorn, Thin, Rainbows, and Puma. Mỗi cái có một thế mạnh riêng, nhưng xét cho cùng, chúng đều làm cùng 1 việc – giữ cho app chạy và xử lý các requests.

Thế còn Passenger thì sao?

Phusion Passenger có 1 chút khác biệt. Trong “standalone mode”, nó hoạt động giống như một app server. Nhưng có còn có thể được build ngay bên trong 1 web server, nên bạn không cần một app server riêng để chạy Rails app.

Điều này thật sự tiện lợi, đặc biệt nếu bạn đang có dự định chạy nhiều apps và không muốn tốn thời gian cho việc setup một app server cho từng Rails app. Sau khi cài đặt Passenger, bạn chỉ cần trỏ web server trực tiếp vào Rails app (thay vì trỏ vào một app server), và Rails app sẽ bắt đầu xử lý các requests.

Passenger là một lựa chọn tuyệt vời, nhưng có một app server tách biệt vẫn tốt hơn. Giữ app server tách biệt sẽ giúp bạn linh động hơn trong việc chọn một app server phù hợp nhất với mục đích, và bạn có thể nâng cấp, thay thế nó về sau dễ dàng hơn.

Vậy Rack thì sao?

Rack thì khá vi diệu. Nó cho phép bất cứ app servers nào chạy được Rails app (hoặc Sinatra app, hoặc Padrino app,…).

Bạn có thể coi Rack là một ngôn ngữ chung cho các web frameworks của Ruby (Rails là 1 trong số đó) và app servers để 2 bên có thể giao tiếp với nhau. Bởi vì cả 2 bên đều “nói” cùng một ngôn ngữ nên Rails có thể “giao tiếp” với Unicorn và ngược lại mà Rails và Unicorn không cần phải biết gì về nhau.

Vậy chúng liên hệ với nhau ra sao?

Tất cả chúng làm thế nào để hoạt động với nhau?

Trong số những phần này, một web request sẽ đến web server trước. Nếu đó là một request mà Rails có thể xử lý, web server sẽ có một vài xử lý với nó và trao lại nó cho app server. App server dùng Rack để giao tiếp với Rails app, khi app làm việc xong với request đó, Rails app sẽ gửi response lại cho app server và web server gửi lại phản hồi cho kẻ đang dùng app.

Cụ thể hơn, Nginx có thể gửi request cho Unicorn. Unicorn đưa request đó cho Rack, đưa nó tới Rails router để gọi đến đúng controller. Sau đó phản hồi lại (theo một đường khác).

Đây chỉ là overview đã được đơn giản hoá. Nhưng sẽ giúp bạn đặt ứng dụng của mình đúng nơi, đúng tinh thần với từng phần.

Sau khi bạn đã hiểu được app servers và web servers hoạt động chung như thế nào, bạn sẽ dễ dàng hơn rất nhiều trong việc debug các vấn đến đề liên quan đến server khi bạn gặp phải.

Lược dịch từ justinweiss.

Theo viblo.asia

Post Views: 103
Previous Post

Machine Learning – công nghệ khai thác tối đa giá trị Big Data như thế nào?

Next Post

Tiến trình SSH key hoạt động như thế nào?

Related Posts

Sửa Nhanh Lỗi Laptop Windows 10 Sạc Pin Không Vào 60951215e059b.png
Phần cứng

Sửa nhanh lỗi laptop Windows 10 sạc pin không vào

11/05/2022
Làm Thế Nào để Xóa Một Phân Vùng Trên ổ đĩa Cứng Windows? 60951232be65c.png
Phần cứng

Làm thế nào để xóa một phân vùng trên ổ đĩa cứng Windows?

11/05/2022
Test Pin Laptop, Cách Kiểm Tra Pin Laptop đang ở Mức Nào Mà Không Cần Cài Phần Mềm 6095123831651.png
Phần cứng

Test pin laptop, cách kiểm tra pin laptop đang ở mức nào mà không cần cài phần mềm

11/05/2022
Hướng Dẫn Xử Lý Khi Key Bàn Phím Laptop Bị Hỏng 6095121ca32df.png
Phần cứng

Hướng dẫn xử lý khi key bàn phím laptop bị hỏng

11/05/2022
Nên Dùng Súng Loại Nào Trong Chiến Dịch Huyền Thoại? 6094aaf17f1da.png
Phần Mềm

Nên dùng súng loại nào trong Chiến Dịch Huyền Thoại?

07/05/2022
Hướng Dẫn Cài đặt Wtfast để Giảm Ping Khi Chơi Game Online, Khi đứt Cáp 6094aae16ee4b.png
Phần Mềm

Hướng dẫn cài đặt WTFast để giảm ping khi chơi game online, khi đứt cáp

07/05/2022
Next Post
Tiến Trình Ssh Key Hoạt động Như Thế Nào? 609f4e5fc7b41.jpeg

Tiến trình SSH key hoạt động như thế nào?

Bài mới nhất

4 Lưu ý Khi Sử Dụng Email Marketing Hiệu Quả Tránh Spam Cho Doanh Nghiệp 612d0db271290.jpeg

4 Lưu ý khi sử dụng email marketing hiệu quả tránh spam cho doanh nghiệp

07/05/2025
Tổng Hợp 10 Mẫu Email Marketing Giới Thiệu Sản Phẩm Nổi Bật Nhất Hiện Nay 612d0da97658c.png

Tổng hợp 10 mẫu email marketing giới thiệu sản phẩm nổi bật nhất hiện nay

07/05/2025
Dịch Vụ Thiết Kế Website Tại Hải Dương Chuyên Nghiệp, ấn Tượng Và Uy Tín 612d25752b14f.png

Dịch vụ thiết kế website tại Hải Dương chuyên nghiệp, ấn tượng và uy tín

06/05/2025
Top Công Ty Thiết Kế Website Tại Biên Hòa Chuyên Nghiệp, Chuẩn Seo 612d259494e93.jpeg

Top công ty thiết kế website tại Biên Hòa chuyên nghiệp, chuẩn SEO

06/05/2025
Top Công Ty Thiết Kế Website Tại Vinh – Nghệ An Uy Tín 612d259a9cae3.jpeg

Top công ty thiết kế website tại Vinh – Nghệ An uy tín

05/05/2025

Danh mục

  • Android
  • Bảo mật máy tính
  • Bảo mật, Antivirus
  • Chuyện công nghệ
  • Deep Learning
  • Development
  • Dịch vụ công trực tuyến
  • Dịch vụ nhà mạng
  • Giải pháp bảo mật
  • Hệ thống
  • Hệ thống
  • iPhone
  • Kiến thức bảo mật
  • Kiến thức cơ bản phổ thông
  • Kiến thức Marketing căn bản
  • Kiến thức tổng hợp
  • Lập trình
  • Linux
  • Linux OS
  • macOS
  • Mail Server
  • Mạng LAN – WAN
  • Máy ảo
  • Máy chủ
  • ms excel
  • ms-powerpoint
  • Nền tảng điện toán đám mây
  • Phần cứng
  • Phần Mềm
  • Quản trị hệ thống
  • Raspberry Pi
  • Sửa lỗi máy tính
  • Tăng tốc máy tính
  • Thủ thuật
  • Thủ thuật SEO
  • Thủ thuật Wifi
  • Tiện ích hệ thống
  • Tin học văn phòng
  • Tin tức
  • Uncategorized
  • Ứng dụng
  • Website
  • Windows Server 2012

Thẻ

#app #chatbot #chatbot tự động #CRM #Kiến thức cơ bản #Techblog #Thiết kế website Android apple CPU Email Marketing Google Google Drive hacker HTML hàm python hàm python có sẵn hình nền hình nền máy tính học css học python học SQL ios iphone iphone 12 iPhone X macos Microsoft mssql MS SQL Server ngôn ngữ lập trình python Raspberry Pi Samsung smartphone SQL SQL Server tham số trong C thủ thuật windows 10 tài liệu python windows windows 10 YouTube điện thoại thông minh ứng dụng
  • About
  • Advertise
  • Privacy & Policy
  • Contact

© 2022 Pha Le Solution

No Result
View All Result
  • Home

© 2022 Pha Le Solution