Webサーバーを実行する基本は何ですか?


26

これは、Webサーバー管理の開始に関する標準的な質問の提案です。

あなたがSysAdを始めたばかりで、WebOpsを初めて使用する場合、またはWeb Server SysAdのサポートがほとんどない、またはまったくない小規模なチームであると仮定します(そして、現在それを購入する余裕はありません)。


あなたはシスアドを持つことの利点を二度述べていますが、これはシスアドではない人に対処することを意味します。Sureyこれにより、Q&AはsysadsなどのServer Faultの範囲外になります。おそらくスーパーユーザーはこのためのより良い家ですか?
user9517は、GoFundMonicaを

8
FAQを読んだことは、「システム管理に関する質問をする技術専門家」と解釈されます。この種の質問は、技術者(SysAdを除く)の人々(主に開発者)から何度も聞かれ、実際に助けられるのではなく、厳しく回答されることがよくあります。この質問は、どこから始めればよいのか、なぜ彼らができるだけ早く本物のSysAdを雇うべきかについてのカノニカルな答えになる候補として提示されます。(そして、この特定の質問に再び答える必要がないことを願っています。
gWaldo13年

回答:


32

始める前に:

質の高い人々がいると、お金を節約できます。同じように良い弁護士持つ SYSADは、おそらく多くの場合、単純にコストのかかるミスを避けるために、あなたを助けることによって、あなたにお金を節約する品質を持つ、(宣誓のためにおそらくNSFW)または会計士を。現在、専門知識に支払うお金がないかもしれませんが、できるだけ早くその投資をする必要があります。

この質問に対する単純で特異な答えはありません。この質問をする人であれば、この質問が専門家が長年の研究と実践に費やしている分野の中核であることを理解する必要があります。開発者への類似の質問は「Webアプリケーションの書き方」です。もちろん、Ruby-on-RailsとRoR "Hello World"をインストールする方法を紹介することもできます。それは「質問に答える」だろうが、実際には助けにはならないだろう。このQ / Aは、実際にあなたを助ける試みです。

あなたが知っておくべき:

Webサーバー管理は大きなトピックであり、本質的に多くの異なる分野と織り交ぜられています。それをうまく行うには、TCP / IP、ホストOS、WebServerアプリケーションの基本的な理解、およびアプリケーションスタックの実行に関するある程度の理解が必要です。

読む準備をしてください。たくさん

ニーズを特定します。

必要条件

  • プレーンで静的なWebサイトを実行していますか(Javascriptの効果がある場合があります)、または
  • (可能性が高い)たまたまWebインターフェースを備えたアプリケーションを実行していますか?
  • 永続的なデータはありますか?(データベースが必要ですか?)
  • ユーザー資格情報が含まれていますか?ユーザーとWebサイト間の接続を保護する必要がある別の理由はありますか?(SSL)
  • あらゆる種類の支払いを処理していますか?SSL要件に加えて、調査が必要な追加の考慮事項があります(地域によって異なります)。これらは、使用する支払い処理業者によっても異なります。

スタックを特定します。

これをどのように書いて実行しますか?

  • プラットフォーム(Windows、Linux、その他のUnixなど)
  • アプリの要件(Ruby / Rails、Python、Perl、PHP、.NETなど)
  • データベース(...)
  • キャッシング?(正直、これについては心配しないでください。これはいくつかの問題を解決し、他の問題を作成する可能性があることに注意してください。これはパフォーマンスの問題です。

これらの選択のいくつかは他の人に知らせます。たとえば、.NETアプリを実行している場合は、おそらくMSSQLとIISを使用する必要があります。Ruby on Railsを実行している場合は、おそらくLinuxサーバーが必要です。等...

製品を知る:

スタックがどのようになるかを決定したら、それを知る必要があります。これは、ほとんどの時間を費やすべき場所です。「[製品]の構成」または「[製品]管理ガイド」を検索すると、十分なリソースが得られます。

たとえば、UbuntuでApacheを実行している場合は、必ずお読みください:

スタックに関する同様のドキュメント、記事、ブログ投稿を探してください。

最低限のインストール:

Apacheには膨大な数のモジュールがありますが、PHPを使用しない場合(たとえば)、mod-phpをインストールしないでください。

また、GUIがLinuxサーバーの場合、GUIのインストールを避ける必要があることもここで述べておく必要があります。GUIは大量のシステムリソースを消費します。

サイトの保護:

  • 機能するための最小限の権限を確認してください。これはファイルシステムだけでなく、サービスとプロセスにも適用されます
  • 不要なサービスのサーバーポートは無効のままにします。(繰り返しますが、最小限のもののみをインストールしてください。)
  • アプリケーションインターフェイスを内部環境に制限します(たとえば、同じサーバー(Railsなど)でWebアプリケーションを実行している場合、ローカルホストのみをリッスンするように制限します)

最後に:

これは、サイトを立ち上げて実行するために行うべきことの始まりにすぎません。これは、サーバーのメンテナンスの問題やスケーリングの問題の処理方法(プロジェクトが成功した場合)や、知識のあるSysAdが解決する他の無数の問題に触れることもありません。


最低限の実行は非常に重要ですが、アンインストール/無効化/保護の対象/方法が明らかでない場合があります。プライベートネットワークで実行されているアプリケーションサーバーに特定の要求のみを転送/プロキシする、完全にファイアウォールで保護されたベアボーンマシンを実行することを提案することは受け入れられますか?アプリケーションが使用する環境と同じである必要はないため、そのためのdistro / configを提案することさえ可能です。
カルロスリマ

1
それは良いスタートです。取り上げなかったことの1つは、繰り返し機能です。ある時点で、現在の設定を超えて成長します。環境をセットアップするための指示は繰り返し可能ですか?さらに良いことに、それらは自動化されていますか?環境を再作成できるようにすべてのソースパッケージを保存していますか、それとも外部リポジトリに依存していますか?アップグレードの時期を知る方法は?適切なメトリックを追跡していますか?それらについてどのように報告していますか?
倒れたワゴン

@toppledwagonこれらはすべて良い点ですが、私は101コースに取り組んでいました。あなたが言及したすべて(一貫性/構成管理、スケーリング、モニタリング/メトリックなど)私は後で来ると感じています。そして正直なところ、これらの分野を掘り下げるよりもSystems Proを入手することをお勧めします。
-gWaldo

3
@toppledwagonそのポイントに到達したら、システム管理者が必要です。または、少なくともSysadmin-as-a-Service。
マイケルハンプトン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.