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 で埋め込みテーブルを実装する方法の例

推薦する

MySQLでテーブルを作成し、フィールドコメントを追加する方法

コードと例を直接投稿する #テーブル作成時にコメントを記述する CREATE TABLE useri...

スクロールバーを非表示にする HTML の簡単な実装

1. 属性付きHTMLタグXML/HTML コードコンテンツをクリップボードにコピー< htm...

MySQL の on と where における左結合設定条件の使用法の違いの分析

この記事では、MySQL の左結合における on 条件と where 条件の使用法の違いを例を使って...

インデックスを設計する際の原則は何ですか? インデックスの障害を回避するにはどうすればよいでしょうか?

目次主キーインデックス頻繁にクエリされるフィールドのインデックスを作成する大きなフィールドのインデッ...

Ubuntu 18.04 に MySQL をインストールする (グラフィカル チュートリアル)

ヒント: 以下の操作はすべて root 権限で実行されます。 # MySQL がインストールされてい...

React Nativeプロジェクトフレームワークの構築経験

React Native は、2015 年 4 月に Facebook によってオープンソース化され...

CSS でホバー ドロップダウン メニューを実装する方法

いつものように、今日は非常に実用的な CSS 効果についてお話します。マウスがボタンに移動すると、ド...

CSS3 弾性拡張ボックスの詳細な説明

使用フレキシブル ボックスはフロントエンドの Web ページ レイアウトで重要な役割を果たしますが、...

MySQL マスタースレーブレプリケーションでエラーをスキップする方法

1. 従来のbinlogマスタースレーブレプリケーション、エラー報告をスキップする方法 mysql&...

Linux SecureCRT の文字化けの解決方法

SecureCRT が文字化けした文字を表示する状況を見てみましょう。例えば: ではリセットしてみま...

MySQLグループリンクの使用に関する詳細な説明

MYSQL におけるグループ化とリンクは、データベースの操作やデータのやり取りで最もよく使用される ...

HTMLテーブルレイアウトの実践的な使い方の詳しい説明

テーブルはいつ使用されますか?最近では、Web ページの全体的なレイアウトにテーブルが使用されること...

html2canvas を使用して HTML コードを画像に変換する方法

コードを画像に変換するにはhtml2canvas は、ブラウザから Web ページのスクリーンショッ...

MySQLからClickHouseに移行する5つの方法

データ移行は、MySQL から ClickHouse にインポートする必要があります。概要プランは以...

PHP環境構築におけるDockerの柔軟な実装

Docker を使用して、柔軟なオンライン PHP 環境を構築します。場合によっては、他の人がすでに...