httpd仮想ホストおよび仮想ホストによるサーバ状態の表示


http仮想ホストの役割:複数のサイトを同じIPにバインドすることも、同じホスト上で複数のサイトを複数のIPにバインドすることもできます.
仮想ホストは、ポートに基づいてバインドすることも、IPに基づいてバインドすることもできます.例は次のとおりです.
 www.a.com --> 10.1.1.100:80
 www.b.net --> 10.1.1.100:808
 www.c.org --> 10.1.1.100:8080

または
 www.a.com --> 10.1.1.100
 www.b.net  --> 10.1.1.101
 www.c.org --> 10.1.1.102

以上の2種類も混合して使用することができる.複数のドメイン名が1つのIPおよびポートを共有することもでき、この場合、dnsが複数のドメイン名を同じIPアドレスにマッピングする必要がある.
仮想ホストの構成(CentOS 7の例):
Apache httpdプロファイル:
プライマリプロファイル:
    /etc/httpd/conf/httpd.conf
    /etc/httpd/conf.d/*conf               # 

1、インストールサービス:
    yum -y install httpd

2、メインプロファイルをバックアップし、変更して、後で仮想ホストを開く:
  vim /etc/httpd/conf/httpd.conf, 
    # DocumentRoot "/var/www"---> httpd 

3、ServerName www.exampleを見つける.com:80、内容を追加します.
ServerName localhost:80 # httpd DNS hostname

4、/etc/http/conf.d/仮想ホストプロファイルを新規作成し、後続の管理を容易にし、使用しない時に削除すればよい
vim /etc/httpd/conf.d/vhosts.conf

4.1ポートベース方式を使用する場合、
      Listen 808                     # 
      
          ServerName www.a.com
          DocumentRoot "/www/a.com/htdocs/"      # , index.html 
      
      
          ServerName www.b.net
          DocumentRoot "/www/b.net/htdocs/"
      

4.2 IPベース方式を用いると、
         
             ServerName www.a.com
             DocumentRoot "/www/a.com/htdocs/"      # , index.html 
          
                   
             ServerName www.b.net
             DocumentRoot "/www/b.net/htdocs/"
          

4.3 FQDN方式を使用する場合(この方法は主にDNSサーバによって複数のドメイン名とIPをバインドする)
          
           ServerName www.a.com
           DocumentRoot "/www/a.com/htdocs/"
             
          
           ServerName www.a.com
           DocumentRoot "/www/a.com/htdocs/"
          

注意:httpdのプロファイルを変更した後、httpd-tを使用してプロファイルを確認し、サービスを再起動する問題はありません.
発生する可能性のある問題と解決方法
1、上記の構成により、仮想ホストにアクセスできない問題がある場合があります.SELinuxおよびiptablesを閉じてください.
   SElinux  :
    setenforce 0        # 
    vim /etc/selinux/config  # 
        SELINUX=disabled
   SELinux :
    getenforce
    disable            # 
 CentOS 7 :
    systemctl disable firewalld.service

2、この時点でアクセスできない場合、プロンプトパスにアクセスできないforbiddenエラーは、仮想ホストプロファイルに次の内容を追加します.
 # , 
    AllowOverride None
    # Allow open access:
    Require all granted

注意:Webファイルのアクセスはデフォルトでは許可されていません
追加後、httpd-tは文法エラーをチェックし、問題がなければサービスを再起動すればいい.このとき、仮想ホストは正常にアクセスできるはずだ.
server-statusおよびアイデンティティ認証
1.仮想ホストからサーバのステータスを取得し、認証が必要な場合は、次の内容を追加します.

ServerName www.a.com
DocumentRoot "/www/a.com/htdocs/"
        
            SetHandler server-status
            AuthType Basic
            AuthName "ENTER YOUR ID"
            AuthUserFile /etc/httpd/conf/.htpasswd   # 
            Require valid-user    # , 
        

2.htpasswd-c-m/etc/http/conf/.htpasswd USERNAMEユーザー名の作成とパスワードの設定
注意:-cコマンドは、ユーザーの最初の作成時にのみ使用され、ユーザーはパスワードファイルを生成します.