Linux での Apache サービスの展開と構成

Linux での Apache サービスの展開と構成

1 Apacheの役割

  • html、php、jsp などの Web ページ言語を解析します。
  • ウェブユーザーからのリクエストを受け取り、特定の応答を返す

2 Apacheのインストール

apche ソフトウェアをインストールします: dnf install httpd.x86_64 -y

3. Apacheを有効にする

  • Apache サービスを有効にし、起動時に開始するように設定します: systemctl enable --now httpd
  • Apache サービスのステータスを確認します: systemctl enable --now httpd

  • ファイアウォール情報を表示します:firewall-cmd --list-all ファイアウォールで http サービスを永続的に有効にします: firewall-cmd --permanent --add-service=http http
  • irewall-cmd --permanent --add-service=https https
  • 現在のファイアウォールの状態を変更せずにファイアウォールを更新する: firewall-cmd --reload

4 Apacheの基本情報

apcheの基本情報

  • サービス名: httpd
  • メイン設定ファイル: /etc/httpd/conf/httpd.conf
  • サブ設定ファイル: /etc/httpd/conf.d/*.conf
  • デフォルトの公開ディレクトリ: /var/www/html
  • デフォルトポート: 80 (http)、443 (https)
  • ログファイル: /etc/httpd/logs
  • apche サービスを開始した後、IP アドレスを入力してデフォルトの公開ページを表示します。

(1)apcheサービスのポート番号を変更する

  • httpd サービスのデフォルトのポート番号を表示します: netstat -antlupe |grep httpd

  • 設定ファイル/etc/httpd/conf/httpd.confを編集し、ポート番号を変更します。

  • httpd サービスを再起動します: systemctl restart httpd
  • httpd サービスのポート番号を確認します: netsat -antlupe | grep httpd

  • ポート番号を変更した後、ファイアウォールにポート 8080 が追加されていないため、IP アドレスを入力しても接続できません。

  • firewall-cmd --permanent --add-port=888/tcp
  • 現在のファイアウォールの状態を変更せずにファイアウォールを更新する: firewall-cmd --reload

  • IPアドレス:ポート番号を入力すると、通常通りアクセスできます

(2)apcheのデフォルトリリースファイルを変更する

  • デフォルトディレクトリ: cd /var/www/html
  • デフォルトの公開ディレクトリに新しいファイルindex.htmlを作成します。

  • 表示するにはhttp://172.25.254.144と入力してください

デフォルトリリースファイルは、Apache にアクセスする際にファイル名が指定されていない場合にデフォルトでアクセスされるファイルです。複数のファイルを指定できますが、アクセス順序があります。

  • 新しいファイルを作成して編集します: westo.html

  • 設定ファイルを編集します: /etc/httpd/conf/httpd.conf

  • httpd サービスを再起動します: systemctl restart httpd

(3)apcheのデフォルトのリリースディレクトリを変更する

  • 新しいディレクトリを作成します: mkdir -p /westos/html/
  • ファイルを作成します: vim /westos/html/index.html

  • apche 設定ファイルを編集します: /etc/httpd/conf/httpd.conf

  • サービスを再起動します: systemctl restart httpd
  • テスト: ブラウザに http://172.25.254.144 と入力すると、/westos/html/ ディレクトリにデフォルトで公開されたファイルが表示されます。

  • 新しいリリースディレクトリを作成します: mkdir /var/www/html/westos
  • 新しいリリースファイルを作成します: vim /var/www/html/westos/index.html

  • 設定ファイルを編集します: vim /etc/httpd/conf/httpd.conf

  • サービスを再起動します: systemctl restart httpd
  • テスト: http://172.25.254.144/westos/

5 Apache アクセス制御

5.1 クライアントIPに基づくアクセス制御

  • IP アクセスに基づいて、どの IP がアクセスでき、どの IP がアクセスできないかを指定します。設定ファイル内の deny と allow の順序によって、ブラックリストとホワイトリストのプロパティが直接決定されます。

(1)ホワイトリスト

  • IPホワイトリスト: リスト内のユーザーのみがアクセスできます
  • 設定ファイルを編集します: vim /etc/httpd/conf/httpd.conf

  • サービスを再起動します: systemctl restart httpd
  • テスト: ip=172.25.254.44 は IP ホワイトリストに含まれており、http://172.25.254.44/westos に正常にアクセスできます。

IP=172.25.254.144 のホストはホワイトリストに含まれていないため、http://172.25.254.44/westos にアクセスできません。

(2)IPブラックリスト

  • IPブラックリスト: リスト内のユーザーのみがアクセスできない
  • 設定ファイルを編集します: vim /etc/httpd/conf/httpd.conf

  • テスト: ip=172.25.254.44 は IP ブラックリストに載っており、http://172.25.254.44/westos には通常どおりアクセスできます。

IP=172.25.254.144 はブラックリストに載っておらず、http://172.25.254.44/westos に通常通りアクセスできます。

5.2 ユーザー認証に基づくアクセス制御

(1)認証を通じて一部のユーザーに共有ディレクトリへのアクセスを許可する

  • 認証ファイルを生成し、管理者ユーザーを作成します: htpasswd -cm /etc/httpd/htpasswdfile linux

  • Linux ユーザーを作成します。-c はユーザー認証ファイルを再作成し、以前の管理者ユーザーを上書きします。パスワードを入力すると、以前のユーザーが上書きされます: htpasswd -m /etc/httpd/htpasswdfile westos

  • 特定のユーザーのみが認証を通過できるようにするには、設定ファイルを編集します: vim /etc/httpd/conf/httpd.conf

  • サービスを再起動します: systemctl restart httpd
  • テスト: 認証されたユーザーのみが共有ディレクトリにアクセスできます

(2)認証を通じてすべてのユーザーが共有ディレクトリにアクセスできるようにする

  • 設定ファイルを編集します: vim /etc/httpd/conf/httpd.conf

  • サービスを再起動します: systemctl restart httpd
  • テスト: すべてのユーザーが認証を通じて共有ディレクトリにアクセスできる

6 つの Apache 仮想ホスト

仮想ホスト: 実ホスト上に複数のサイト (複数のドメイン名) が構築されます。ホストのさまざまな Web ページはドメイン名を通じてアクセスされます。ネットワーク アドレスからは、複数のホストがあるように見えます。これらのホストは仮想ホストと呼ばれます。

DNSはドメイン名のIPを解決する

Linux、ニュース、メディアのデフォルトのリリース ディレクトリを作成します: mkdir /var/www/westos.com/{linux,news,media}
Linux のデフォルトのリリース ファイル: echo "<h1>hello linux</h1>" > /var/www/westos.com/news/index.html
ニュースのデフォルトの公開ファイル: echo "<h1>hello news </h1>" > /var/www/westos.com/news/index.html
メディアのデフォルトの公開ファイル: echo "<h1>hello media </h1>" > /var/www/westos.com/media/index.html
  • 新しいapcheサブ設定ファイルを作成し、編集します: /etc/httpd/conf.d/vhost.conf

  • ローカルドメイン名解決ファイルを編集します: /etc/hosts

  • テスト結果:

7 Apache暗号化アクセス

(1)暗号化プラグインをインストールする

  • Apache の暗号化プラグインを表示: dnf search apache

  • 暗号化プラグインをインストールする

(2)秘密鍵を生成する: openssl genrsa -out /etc/pki/tls/private/www.westos.com.key

(3)証明書署名ファイルを生成する: openssl req -new -key /etc/pki/tls/private/www.westos.com.key -out /etc/pki/tls/cert/www.westos.com.csr

(4)証明書を生成する:

openssl x509 -req -days 365 -in /etc/pki/tls/certs/www.westos.com.csr -signkey /etc/pki/tls/private/www.westos.com.key -out /etc/pki/tls/certs/www.westos.com.crt
## x509:証明書フォーマット ## -req リクエスト ## -in ビザ名をロード ## -signkey 

  • 設定ファイルを編集します: /etc/httpd/conf.d/ssl.conf

  • apcheのサブ設定ファイルを編集し、以下を編集します: /etc/httpd/conf.d/vhost.conf

  • サービスを再起動します: systemctl restart httpd

  • テスト: これで、https暗号化サービスを正常に使用できるようになりました

8. Webページの書き換え

ブラウザにmedia.westos.comと入力すると、自動的に次のインターフェースにジャンプします。

  • media.westos.com にアクセスした後に https://media.westos.com にリダイレクトしたい場合は、Web ページを書き換えることでこれを実現できます。つまり、http (ポート 80) にアクセスすると自動的に https (ポート 443) にリダイレクトされます。
  • ウェブページの書き換えを実装する手順

(1)apcheサブ設定ファイルを編集する:/etc/httpd/conf.d/vhost.conf

(2)サービスを再起動する:systemctl restart httpd

(3)テスト、ドメイン名を入力するとhttpsが自動的に読み込まれます

9 フォワードプロキシ

(1)Squidクライアントを設定する(ホストがインターネットにアクセスできる)

  • 設定ファイルを編集します: /etc/squid/squid.conf

  • squid サービスを開始します: systemctl start squid.service

(2)クライアント:インターネットにアクセスできないホストでテストし、ブラウザに以下を入力します:www.baidu.comにアクセスできません

  • プロキシの追加: 設定 -> ネットワーク設定 -> 手動プロキシ設定

  • squid サービスのホストとポート番号を入力します。設定が完了すると、ホストはインターネットに接続されていなくても、プロキシ経由で www.baidu.com やその他の Web サイトにアクセスできるようになります。

  • クライアントでテスト済み、www.baidu.com に正常にアクセスできます

しかし、クライアントホストは依然としてwww.baidu.comにpingできません。

10 リバースプロキシ

node1: Apache サービスのない仮想マシン 172.25.254.244

node2: Apacheサービスを正常に使用できる仮想マシン172.25.254.193、Apacheリリースファイルを構成する

  • プロキシをダウンロードします: dnf install squid -y

  • 設定ファイルを編集します: vim /etc/squid/squid.conf

  • squid サービスを再起動します: systemctl restart squid
    元々Apacheサービスがなかったホスト172.25.254.244は、172.25.254.193のポート80(http)を介してデータをキャッシュできます。

Apacheがサポートする1​​1の言語

php

Apache サービスを再起動します: systemctl restart httpd.service

テスト: http://172.25.254.144/index.php

CG-10 ...

mkdir /var/www/html/cgi

vim /var/www/html/cgi/index.cgi

/var/www/html/cgi をコピーします

chmod +x index.cgi

./var/www/html/cgi/index.cgi

テスト: http://172.25.254.144/cgi/index.cgi

仮想ホスト設定ファイルを編集します: vim /etc/httpd/conf.d/vhost.conf

サービスを再起動します: systemctl restart httpd.service

テスト: http://172.25.254.144/cgi/index.cgi

Linux での Apache サービスの展開と構成に関するこの記事はこれで終わりです。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援して頂ければ幸いです。

以下もご興味があるかもしれません:
  • Linux インストール Apache サーバー構成プロセス
  • Linux で Apache を使用してファイル サーバーを構築する手順
  • Linux オペレーティング システムに Apache サービスをインストールする方法
  • LinuxベースのApacheウェブサイトサービス構成の詳細な説明
  • Linux での Apache サーバーの構成と管理の簡単な分析

<<:  CSS3セレクターの新機能の実装

>>:  vue+elementUI で埋め込みテーブルを実装する方法の例

推薦する

チェックボックスの選択またはキャンセルを実装するJavaScript

この記事では、すべてのチェックボックスを選択または解除するためのJavaScriptの具体的なコード...

MySQL InnoDB のトランザクション特性を確保するにはどうすればよいですか?

序文「データベース トランザクションの特徴は何ですか?」と尋ねられたら、 ACID 特性である原子性...

DD DT DLタグの使用例

通常は <ul><li> タグを使用しますが、dd タグと dt タグも便利...

HTML テーブルタグチュートリアル (11): 水平方向の配置属性 ALIGN

水平方向では、テーブルの配置を左、中央、右に設定できます。基本的な構文<テーブル配置=&quo...

サブメニューをクリックする効果を実現するJavaScript

この記事では、クリック時にサブメニューを表示するためのJavaScriptの具体的なコードを参考まで...

Linux での chmod コマンドの使用方法の詳細な説明

chmod コマンド構文chmod コマンドを使用する場合の正しい構文は次のとおりです。 chmod...

Linuxの運用と保守、基本的なプロセス管理、リアルタイム監視と制御

目次1. バックグラウンドで実行されるジョブ2. 信号を使用してプロセスを制御する基本的なプロセス管...

Vue におけるキープアライブ マルチレベル ルーティング キャッシュの問題

目次1. 問題の説明2. 原因分析3. 解決策4. 処理1. 問題の説明調整センターでは、最後の 2...

Nginx SSL証明書設定エラーの解決策

1. はじめにWeb プロジェクトを Linux サーバーで公開する場合、SSL 証明書を構成する必...

「fsck」を使用して Linux のファイルシステムエラーを修正する方法

序文ファイル システムは、データの保存方法と復元方法を整理する役割を担います。 いずれにせよ、時間の...

初心者向けWebサイト構築ガイド⑥:FlashFXPの詳しい使い方

今日は、サイトの設定やウェブサイトのアップロードなど、FlashFXP の最も基本的な機能を紹介しま...

Spark と Scala を使用して Apache アクセス ログを分析する方法

インストールまず、Java と Scala をインストールし、次に Spark をダウンロードしてイ...

Element-ui アップロードファイルのアップロード制限の解決策

質問アップロードするファイルのタイプを accept に追加することは、「表面的な」役割しか果たしま...

Rails APIを使用してReactアプリケーションを構築するための詳細な手順

目次バックエンド: Rails API部分フロントエンド: React部分Reactコンポーネントa...

MySQL ルート パスワードをリセットするときに発生する「不明な列 'password'」問題を解決する方法

夜にMACの電源を入れたところ、突然ルートアカウントがMySQLに正常にログインできなくなったため、...