apache|サーバー|戦略
著者: Wang Bo
主なサーバー設定
Apache サーバーは、Web サービスを提供するためにさまざまなパラメーターの独自の使用を定義するためにさまざまな設定を必要とします。仮想ホストを使用する場合、ここでの設定は、仮想ホストの定義で上書きされる設定(一部の設定を再定義する必要があります)に加えて、仮想ホストのデフォルトの設定でもあります。
ポート80
ポートはスタンドアロンモードでhttpdデーモンが使用するポートを定義します。標準ポートは80です。このオプションは、スタンドアロン モードで起動されたサーバーにのみ有効です。inetd モードで起動されたサーバーの場合、使用するポートは inetd.conf で定義されます。
Unix でポート 80 を使用するには、root 権限が必要です。セキュリティ上の理由から、httpd サーバーにセキュリティ上の脆弱性があるはずがないと考えている管理者もいます。このように、ポート 80 とサーバーを起動するのに通常のユーザーの権限を使用することを好みます。 httpd を起動するには、1024 より小さいポートを使用する必要があります。通常、8000 または 8080 もよく使用されます。 Apache httpd サーバー自体は、root 権限でポート 80 を開き、通常のユーザーとして実行するように変更できます。これにより、リスクが軽減され、このセキュリティ問題を考慮する必要がなくなります。ただし、一般のユーザーも独自の WWW サーバーをインストールして構成したい場合は、1024 より大きいポートを使用する必要があります。
UserEveryone
Group nogroup
User と Group の設定は、Apache のセキュリティを保証するもので、Apache がポートを開いた後、これら 2 つのオプションで設定されたユーザーとグループの権限で実行されるように設定され、リスクが軽減されます。サーバーの危険性について。このオプションは、スタンドアロン モードでのみ使用されます。Inetd モードでは、inetd.conf で Apache を実行するユーザーを指定します。 ID を変更するにはサーバーが setuid() 操作を実行する必要があるため、初期プロセスには root 権限が必要です。root 以外のユーザーを使用して Aapche を起動する場合、この構成は機能しません。
デフォルト設定は、nobody と nogroup です。このユーザーとグループはシステム内のファイルを所有していないため、サーバー自体とサーバーによって開始された CGI プロセスにはファイル システムを変更する権限がありません。たとえば、CGI を実行して Unix と対話するために、サーバーはサーバー上のファイルにアクセスする必要がある場合もあります。nobody と nogroup がまだ使用されている場合、誰にも属していないファイルがシステムに表示され、システムに悪影響を及ぼします。システム セキュリティ。他のプログラムも、nobody および nogroup のアクセス許可を使用して特定の操作を実行するため、これらの none が所有するファイルにアクセスする可能性があり、セキュリティ上の問題が発生します。通常、Web サービスに特定のユーザーとグループを設定し、ここでユーザーとグループの設定を変更します。
ServerAdmin you@your.address
おそらく、設定ファイル内で変更する必要があるのは ServerAdmin だけです。この項目は、ブラウザに返される WWW サーバーの管理者の電子メール アドレスを設定するために使用されます。 HTTP サービス エラーが発生した場合に、Web ユーザーが管理者に連絡してエラーを報告できるようにします。 WWW サーバーの管理者としてサーバー上の Web マスターを使用し、Web マスターに送信されたメールをメール サーバーのエイリアス機構を介して実際の Web 管理者に送信するのが一般的です。
#ServerName new.host.name
デフォルトでは、この ServerName パラメータを指定する必要はありません。ただし、サーバーの名前に問題がある場合、サーバーは自動的に独自の名前を取得します。解決 (通常、逆解決は正しくありません)、または正式な DNS 名がない場合は、ここで IP アドレスを指定することもできます。 ServerName が正しく設定されていない場合、サーバーは正常に起動できません。
通常、Webサーバーは複数の名前を持つことができ、クライアントのブラウザはこれらすべての名前またはIPアドレスを使用してサーバーにアクセスできますが、仮想ホストが定義されていない場合、サーバーは常に独自の正式名でブラウザに応答します。 ServerName は、Web サーバー自体が認識する正式な名前を定義します。たとえば、サーバーの名前 (DNS で定義されているタイプ A) は exmaple.org.cn です。同時に、覚えやすいようにエイリアス (CNAME レコード) を定義します。 ) も www.exmaple.org.cn として定義されている場合、Apache によって自動的に解析される名前は example.org.cn になります。このように、クライアントのブラウザーがリクエストの送信に使用する名前に関係なく、サーバーは常にクライアントプログラムはexample.org.cnです。通常はこれで問題ありませんが、いつかサーバーを別のコンピュータに移動する可能性があり、DNS の www エイリアス設定を変更するだけで移行作業が完了することを考えると、お客様には Linux レコードを使用してほしくないのです。このサーバーのアドレスを指定するには、ServerName を使用してサーバーの正式名を再指定する必要があります。
DocumentRoot "/www/"
DocumentRoot は、このサーバーによって公開されたハイパーテキスト ドキュメントが保存されるパスを定義します。クライアント プログラムによって要求された URL は、このディレクトリ内の Web ページ ファイルにマッピングされます。このディレクトリの下のサブディレクトリ、および
シンボリック リンクを使用して指定されたファイルやディレクトリには、同じ相対ディレクトリ名が URL で使用されている限り、ブラウザからアクセスできます。
シンボリック リンクは論理的にはルート ドキュメント ディレクトリの下に配置されますが、実際にはコンピュータ
上の任意のディレクトリに配置できるため、クライアント プログラムがルート ドキュメント ディレクトリの外側のディレクトリにアクセスできるようになります。これは
の柔軟性で追加されましたが、セキュリティの低下。 Apache は、シンボリック リンクのサポート機能をオンまたはオフにするためのディレクトリ アクセス制御に FollowSymLinks オプションを提供します。