複数のサイト用の Apache VirtualHost の設定

複数のサイト用の Apache VirtualHost の設定

自分のマシンに Web サイトをセットアップしようとしているのですが、問題が発生しています。Flask とデバッグ サーバーを使用して Web サイトのプロトタイプを作成しましたが、さらにデバッグする間、しばらくホストしておきたいと思います。これは、会社のネットワーク内での内部使用のみです。

Apache を正しく設定できないようです。現在、ホーム ディレクトリにリンクするデフォルトのサイトを実行しているので、Web ブラウザーを介して他のマシンからファイルを取得できます。

私はapache2.conf何も変更していませんが、httpd.confは次のようになります。

<Location /server-status>
    SetHandler server-status

    Order Deny, Allow
    Deny from all
    Allow from .mycompany.com
</Location>

私のデフォルトの設定/etc/apache2/sites-available/defaultは、

<VirtualHost *:80>
    ServerAdmin [email protected]

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinksMultiViews
        AllowOverride None
        Order allow,deny
        allow from .mycompany.com
    </Directory>
    <Directory /var/www/home/>
        Options Indexes FollowSymLinks MultiViews
        AllowOVerride None
        Order allow,deny
        allow from .mycompany.com
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

私が有効にしようとしているアプリには、次の設定ファイルがあり、/etc/apache2/sites-available/Powermon

LoadModule fastcgi_module /usr/lib/apache2/modules/mod_fastcgi.so

User p_user
Group p_group
FastCgiServer /home/p_user/Powermon/runp.fcgi -idle-timeout 300 -processes 5

<VirtualHost *:80>
    ServerName powermon
    DocumentRoot /home/p_user/Powermon/app/static
    Alias /static /home/p_user/Powermon/app/static

    AddHandler fastcgi-script fcgi
    ScriptAlias / /home/p_user/Powermon/runp.fcgi

    ErrorLog /home/p_user/Powermon/logs/powermon_error_log

    <Location />
        SetHandler fastcgi-script
    </Location>
</VirtualHost>

サイトが有効になっている中で、

000-default -> ../sites-available/default

そこで私は

010-powermon -> ../sites-available/Powermon

そして走るとapache2ctl -S見える

VirtualHost configuration:
wildcard NameVirtualHosts and _default_servers:
*:80            is a NameVirtualHost
    default server dhcp-ip-address.mycompany.com (/etc/apache2/sites-enabled/000-default:1)
    port 80 namevhost dhcp-ip-address.mycompany.com (/etc/apache2/sites-enabled/000-default:1)
    port 80 namevhost powermon (/etc/apache2/sites-enabled/010-powermon:7)
Syntax OK

そのため、現在、ブラウザでアクセスするとmachine-name/、ホーム ディレクトリに移動し、必要に応じてファイルを確認できます。理想的には、アクセスしてmachine-name/powermonアプリが実行中であることを確認したいです。

答え1

Apache 仮想ホストを設定したいと言っていますが、次のように言っています:

そのため、現在、ブラウザでアクセスするとmachine-name/、ホーム ディレクトリに移動し、必要に応じてファイルを確認できます。理想的には、アクセスしてmachine-name/powermonアプリが実行中であることを確認したいです。

ホスト上のパスは仮想ホストではありません。 構成は次のように設定されています: へのトラフィックはpowermon1 つの構成に送られます。 へのトラフィックはdhcp-ip-address.mycompany.com別の構成に送られます。

したがって、Apache 仮想ホストのセットアップが機能する唯一の方法は、この URL にアクセスして次の 1 つを取得することです。

dhcp-ip-address.mycompany.com

次に、この URL にアクセスして別のものを入手します。

powermon

Apache 仮想ホスト設定でこれを実際に実現する唯一の方法は、Web ブラウジング クライアントの/etc/hostsファイルを次のように変更することです。これらの仮想ホストが IP アドレス 123.456.78.90 のサーバー上にあると仮定します。ファイルを開きますhosts(私は Mac を使用しているので、次のようにします) nano

sudo nano /etc/hosts

そして、ファイルの最後に次の行を追加します。

123.456.78.90 powermon

ここで、Web ブラウザで次のページにアクセスします。

http://powermon

Apache 仮想ホストの設定が完了します。

しかし、もう一度言いますが、サーバー パスの概念とサーバー仮想ホストの概念を混同しています。したがって、他の作業を行う前に、その点を解決しなければなりません。また、仮想ホスト構成がpowermonばらばらのようです。 の外側にある項目は<VirtualHost *:80>内側に入れる必要があります。そうしないと、それらの構成オプションはサーバー全体の構成で使用されますdefault。また、User&Group設定も不格好に見えます。スクリプトは、Apache ユーザー & グループが使用できるように設定する必要があります。その逆ではありません。ただし、誠意を持って対応していると仮定すると、次のように構成します。

ユーザー p_user グループ p_group

サーバー名 powermon ドキュメントルート /home/p_user/Powermon/app/static エイリアス /static /home/p_user/Powermon/app/static

    LoadModule fastcgi_module /usr/lib/apache2/modules/mod_fastcgi.so

    FastCgiServer /home/p_user/Powermon/runp.fcgi -idle-timeout 300 -processes 5

    AddHandler fastcgi-script fcgi
    ScriptAlias / /home/p_user/Powermon/runp.fcgi

    ErrorLog /home/p_user/Powermon/logs/powermon_error_log

    <Location />
        SetHandler fastcgi-script
    </Location>

</VirtualHost>

答え2

ファイル /etc/apache2/sites-available/Powermon へのソフト リンクを作成しましたか?

たとえば、次のようなものがあります:

cd /etc/apache2/sites-enabled/
ln -s ../sites-available/Powermon

関連情報