여러 사이트에 Apache VirtualHost 설정

여러 사이트에 Apache VirtualHost 설정

내 컴퓨터에 웹사이트를 설정하려고 하는데 문제가 있습니다. 저는 Flask와 디버그 서버를 사용하여 웹사이트의 프로토타입을 만들었고, 이제 디버깅을 더 진행하는 동안 잠시 호스팅하고 싶습니다. 이는 회사 네트워크 내부에서만 사용됩니다.

Apache를 올바르게 구성할 수 없는 것 같습니다. 나는 현재 내 홈 디렉토리에 연결되는 기본 사이트를 운영하고 있으므로 웹 브라우저를 통해 다른 컴퓨터에서 파일을 가져올 수 있습니다.

나는 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내 앱이 실행되는 것을 확인하고 싶습니다 .

호스트의 경로는 가상 호스트가 아닙니다. 구성은 다음과 같이 설정됩니다. 트래픽이 powermon하나의 구성으로 이동합니다. 트래픽이 dhcp-ip-address.mycompany.com다른 구성으로 이동합니다.

따라서 Apache 가상 호스트 설정이 작동하는 유일한 방법은 다음 URL로 이동하여 다음 중 하나를 얻는 것입니다.

dhcp-ip-address.mycompany.com

그런 다음 이 URL로 이동하여 다른 정보를 얻으세요.

powermon

Apache 가상 호스트 설정을 통해 이를 실제로 달성하는 유일한 방법은 웹 브라우징 클라이언트의 /etc/hosts파일을 이와 같이 변경하는 것입니다. 이러한 가상 호스트가 IP 주소 123.456.78.90을 가진 서버에 있다고 가정해 보겠습니다. 다음과 같이 파일을 엽니다 hosts. 저는 Mac을 사용하고 있으므로 다음과 같이 하겠습니다.nano

sudo nano /etc/hosts

그리고 파일 맨 아래에 다음 줄을 추가하세요.

123.456.78.90 powermon

이제 웹 브라우저에서 다음을 가리키면:

http://powermon

현재 가지고 있는 Apache 가상 호스트 설정이 제공됩니다.

그러나 이번에도 서버 경로 개념과 서버 가상 호스트를 혼동하고 있습니다. 그러므로 다른 일을 하기 전에 먼저 이 문제를 해결해야 합니다. 또한 가상 호스트 구성이 powermon연결되지 않은 것 같습니다. 바깥에 있는 물건은 <VirtualHost *:80>안으로 들어가야 합니다. 그렇지 않으면 해당 구성 옵션은 어쨌든 서버 전체 default구성에서 사용됩니다. 그리고 User& Group설정도 복잡해 보입니다. 스크립트는 Apache 사용자 및 그룹이 사용할 수 있도록 설정되어야 합니다. 그 반대는 아닙니다. 하지만 선의로 가정하면 다음과 같이 구성하겠습니다.

사용자 p_user 그룹 p_group

서버 이름 powermon DocumentRoot /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

관련 정보