Những điều cơ bản để chạy Máy chủ Web là gì?


26

Đây là một Câu hỏi Canonical được đề xuất về Quản trị Máy chủ Web Bắt đầu.

Giả sử rằng bạn là một SysAd mới bắt đầu, chưa quen với WebOps hoặc một nhóm nhỏ có ít hoặc không có hỗ trợ SysAd của Máy chủ Web (và không thể đủ khả năng ngay bây giờ), bạn nên làm gì để định cấu hình và bảo mật Máy chủ Web cho doanh nghiệp của mình?


Bạn đề cập đến hai lần lợi ích của việc có một sysad ngụ ý rằng bạn đang giải quyết những người không phải là sysad. Chắc chắn điều này sau đó đặt Q & A của bạn ra khỏi phạm vi cho Server Fault dành cho sysads et al? Có lẽ Super User là một ngôi nhà tốt hơn cho điều này?
user9517 hỗ trợ GoFundMonica

8
Việc đọc Câu hỏi thường gặp của tôi được hiểu là "các chuyên gia kỹ thuật đặt câu hỏi cho Quản trị Hệ thống". Tôi đã thấy loại câu hỏi này được hỏi nhiều lần từ những người kỹ thuật (nhưng không phải là SysAd) (chủ yếu là Nhà phát triển) và họ thường được trả lời gay gắt thay vì thực sự giúp đỡ. Câu hỏi này được đặt ra như một ứng cử viên để trở thành một câu trả lời Canonical về Bắt đầu từ đâu và tại sao họ nên thuê SysAd thực sự giúp đỡ càng sớm càng tốt. (Và hy vọng không bao giờ phải trả lời câu hỏi cụ thể này nữa.
gWaldo

Câu trả lời:


32

Trước khi chúng tôi bắt đầu:

Có người chất lượng sẽ giúp bạn tiết kiệm tiền. Giống như có một Luật sư giỏi (có thể là NSFW để chửi thề) hoặc một kế toán viên, có một SysAd chất lượng có thể sẽ giúp bạn tiết kiệm tiền, thường chỉ bằng cách giúp bạn tránh những sai lầm tốn kém. Bạn có thể không có tiền để trả cho chuyên môn bây giờ, nhưng ngay khi bạn có thể, bạn nên thực hiện đầu tư đó.

Không có câu trả lời đơn giản, duy nhất cho câu hỏi này. Nếu bạn là người đặt câu hỏi này, bạn phải nhận ra rằng câu hỏi này là cốt lõi của một lĩnh vực mà các chuyên gia đầu tư nhiều năm nghiên cứu và thực hành. Câu hỏi tương tự với Nhà phát triển sẽ là "làm thế nào để tôi viết Ứng dụng Web?"; Chắc chắn, chúng tôi có thể chỉ cho bạn một hướng để cài đặt Ruby-on-Rails và RoR "Hello World". Trong khi điều đó sẽ 'trả lời câu hỏi', nó thực sự sẽ không giúp bạn. Q / A này là một nỗ lực để thực sự giúp bạn.

Bạn nên biết:

Quản trị máy chủ web là một chủ đề lớn và về bản chất nó được đan xen với nhiều chuyên ngành khác nhau. Để làm tốt điều đó, bạn sẽ cần một sự hiểu biết cơ bản về TCP / IP, hệ điều hành máy chủ, Ứng dụng máy chủ web của bạn và một số hiểu biết về việc chạy ngăn xếp ứng dụng.

Hãy chuẩn bị để đọc. Rất nhiều .

Xác định nhu cầu của bạn:

Yêu cầu

  • Bạn đang chạy một trang web đơn giản, tĩnh (có thể có một số hiệu ứng Javascript) hoặc
  • (nhiều khả năng) bạn đang chạy một ứng dụng có giao diện web phải không?
  • Bạn có dữ liệu liên tục? (Bạn có cần cơ sở dữ liệu không?)
  • Có thông tin người dùng liên quan? Có một lý do nào khác mà bạn cần kết nối giữa người dùng và trang web để được bảo mật? (SSL)
  • Bạn đang xử lý các khoản thanh toán dưới bất kỳ hình thức nào? Ngoài việc có các yêu cầu SSL, có những cân nhắc bổ sung mà bạn sẽ cần nghiên cứu (phụ thuộc vào khu vực). Những điều này cũng sẽ thay đổi tùy thuộc vào bộ xử lý thanh toán mà bạn sử dụng.

Xác định ngăn xếp của bạn:

Làm thế nào bạn sẽ viết và chạy này?

  • Nền tảng (Windows, Linux, Unix khác, v.v.)
  • Yêu cầu ứng dụng (Ruby / Rails, Python, Perl, PHP, .NET, v.v.)
  • Cơ sở dữ liệu (...)
  • Bộ nhớ đệm? (Thành thật mà nói, đừng lo lắng về vấn đề này ngay bây giờ

Một số lựa chọn này sẽ thông báo cho những người khác. Ví dụ: Nếu bạn đang chạy một ứng dụng .NET, có lẽ bạn muốn sử dụng MSSQL và IIS; Nếu bạn đang chạy Ruby on Rails, có lẽ bạn muốn có một máy chủ Linux; v.v ...

Nhận biết sản phẩm của bạn:

Bây giờ bạn đã quyết định xem ngăn xếp của bạn sẽ trông như thế nào, bạn cần phải biết về nó. Đây là nơi bạn nên dành phần lớn thời gian của bạn. Tìm kiếm "Định cấu hình [sản phẩm]" hoặc "[sản phẩm] Hướng dẫn quản trị" sẽ giúp bạn có được nhiều tài nguyên.

Chẳng hạn, nếu bạn đang chạy Apache trên Ubuntu, bạn hoàn toàn nên đọc:

Tìm kiếm các tài liệu, bài viết, bài đăng blog tương tự cho ngăn xếp của bạn.

Cài đặt tối thiểu trần:

Có rất nhiều mô-đun cho Apache, nhưng nếu bạn không sử dụng PHP (ví dụ), đừng cài đặt mod-php.

Ở đây cũng cần nói rõ rằng bạn nên tránh cài đặt GUI nếu đó là máy chủ Linux; GUI sử dụng một lượng tài nguyên hệ thống đáng kể.

Bảo vệ trang web:

  • Đảm bảo quyền tối thiểu để hoạt động. Điều này không chỉ áp dụng cho hệ thống tập tin mà còn cho các dịch vụ và quy trình
  • Giữ cổng máy chủ bị vô hiệu hóa cho các dịch vụ không cần thiết. (Một lần nữa, chỉ cài đặt tối thiểu.)
  • Hạn chế giao diện ứng dụng với môi trường bên trong (ví dụ: nếu chạy ứng dụng web trên cùng một máy chủ (chẳng hạn như Rails), hạn chế chỉ nghe nội bộ localhost)

Trong phần kết thúc:

Đây chỉ là sự khởi đầu của những gì bạn nên làm để có được một trang web và chạy. Điều này thậm chí không bắt đầu chạm đến các vấn đề của việc duy trì máy chủ hoặc cách xử lý các vấn đề về nhân rộng (nếu dự án của bạn thành công), cũng không có bất kỳ vấn đề nào khác mà SysAd hiểu biết sẽ giải quyết cho bạn.


Chạy tối thiểu là rất quan trọng, nhưng có thể không rõ ràng về cách / gỡ cài đặt / vô hiệu hóa / bảo vệ. Có thể chấp nhận đề xuất chạy một barebones, máy hoàn toàn được tường lửa mà chỉ chuyển tiếp / ủy quyền các yêu cầu cụ thể đến máy chủ ứng dụng của họ chạy trên mạng riêng không? Thậm chí có thể đề xuất một distro / config cho điều đó vì nó không cần phải giống với môi trường mà ứng dụng của họ sử dụng.
Carlos Lima

1
Đó là một khởi đầu tốt. Một điều bạn không bao gồm là khả năng lặp lại. Tại một số điểm bạn sẽ phát triển vượt ra ngoài thiết lập hiện tại. Là hướng dẫn của bạn để thiết lập môi trường có thể lặp lại? Tốt hơn nữa, chúng có tự động không? Bạn đang lưu tất cả các gói nguồn để bạn có thể tạo lại môi trường hay bạn đang dựa vào các kho lưu trữ bên ngoài? Làm thế nào bạn sẽ biết khi nào là thời gian để nâng cấp? Bạn đang theo dõi các số liệu thích hợp? Làm thế nào bạn báo cáo về họ?
topplingwagon

@topplingwagon Đó là tất cả những điểm tốt, nhưng tôi đã giải quyết khóa học 101. Tất cả mọi thứ bạn đã đề cập (tính nhất quán / cấu hình mgt, chia tỷ lệ, theo dõi / số liệu, v.v.) tôi cảm thấy đến sau. Và thành thật mà nói, tôi thà khuyên bạn nên lấy Systems Pro hơn là đi sâu vào các lĩnh vực đó.
gWaldo

3
@topplingwagon Khi bạn đến điểm đó, bạn cần một sysadmin. Hoặc ít nhất là một Sysadmin-as-a-Service.
Michael Hampton
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.