2015-06-14 27 views
8

Tôi là một nhà phát triển PHP mới cho Golang. PHP đi kèm với một máy chủ sẵn có mà không được khuyến khích cho sản xuất. Tôi đọc số beautiful book by astaxie về phát triển web ở Go và cũng là golang.org example on writing a web app. Cả hai đều sử dụng http.ListenAndServe() để tạo một máy chủ web. Tôi chỉ muốn biết nếu máy chủ này có thể được sử dụng trong sản xuất hoặc là nó chỉ là một máy chủ giả như PHP inbuilt máy chủ? Theo sản xuất tôi có nghĩa là, nó có thể xử lý lưu lượng truy cập lớn như một máy chủ Apache hoặc ngnix?Sử dụng máy chủ HTTP của Go để sản xuất

+2

OP hỏi "Tôi chỉ muốn biết liệu máy chủ này có thể được sử dụng trong sản xuất hay chỉ là một máy chủ giả". Đây không phải là rất nhiều ý kiến ​​dựa trên IMO, đó là một câu hỏi tập trung với một câu trả lời rõ ràng (có), nhưng không phải là một câu hỏi lập trình đơn giản là tốt, tôi sẽ thừa nhận. –

Trả lời

5

Câu trả lời ngắn: CÓ.

Câu trả lời dài hơn: bạn chắc chắn có thể sử dụng máy chủ web tích hợp cho lưu lượng truy cập sản xuất. Có một cơ hội tốt mà bạn đã sử dụng nó ngay hôm nay, vì Google phân phối một số lưu lượng truy cập bằng cách sử dụng nó. Tôi biết rất nhiều công ty, kể cả công ty tôi làm việc để sử dụng nó cho lưu lượng truy cập sản xuất. BTW Tôi không biết về một máy chủ Web được sử dụng rộng rãi trong Go mà không không sử dụng máy chủ web chuẩn.

Cũng nên lưu ý rằng bạn cần phải tinh chỉnh những thứ như khách hàng thờ gian tạm ngưng để làm cho nó thực sự mạnh mẽ, và có lẽ hạn chế các kết nối đến vv

+0

là Google URL shortener mà họ sử dụng máy chủ Go? –

+2

@AkashKumarSharma Không có ý tưởng. Một điều tôi biết là chạy trên đó là các máy chủ tải xuống của họ. Xem ở đây, đây là một bài nói chuyện tuyệt vời https://talks.golang.org/2013/oscon-dl.slide#1 –

3

Để thêm vào @ câu trả lời Not_a_Golfer: Bạn chuyển của máy chủ web là vô cùng vững chắc và được kiểm tra khá tốt cho đến nay.

Có, tuy nhiên, lý do tại sao bạn có thể đặt nó đằng sau một proxy ngược như nginx, Apache hoặc HAProxy, bao gồm:

  • chấm dứt SSL (nginx có rất nhiều tính năng bổ sung TLS rằng bạn sẽ có để thực hiện một phần bản thân, giống như dễ dàng OCSP hỗ trợ dập ghim)
  • Proxy bộ nhớ đệm (phục vụ đáp ứng tĩnh từ bộ nhớ cache, hoặc 500 nếu treo ứng dụng Go của bạn)
  • khai thác gỗ Performant
  • hỗ trợ
  • SPDY (mặc dù cả hai tới & nginx sẽ proba Bly được HTTP/2 cùng lúc)
  • Built-in hỗ trợ gzip và các tùy chọn
  • mô tả tập tin bộ nhớ đệm cho các tập tin tĩnh

tôi thường thích đặt nginx trước nếu tôi có quyền lựa chọn , bởi vì mặc dù bạn có thể thực hiện tất cả các tính năng đó trong Go, nhưng có một chút sáng chế bánh xe đang diễn ra. Bạn có thể nhận được hầu hết các cách có phần mềm trung gian như gorilla/handlers và mật mã/tls lib của Go và nếu bạn không phải là người dùng và/hoặc muốn giữ mọi thứ thật mỏng, thì hãy chạy mọi thứ trực tiếp từ Go vẫn tốt cho sản xuất .

+0

Tôi dự định sử dụng nginx chủ yếu cho proxy caching bây giờ mà nó cảm thấy rằng Go máy chủ là một người biểu diễn nhượng chính nó. –

Các vấn đề liên quan