내 Ubuntu 16.4 VM에서는 Apache 2.4를 성공적으로 설정했으며 여러 가상 호스트가 설정되었습니다. 서버 상태를 보고 싶은데 첫 번째 가상 호스트가 계속해서 이를 방지하고 있습니다. 나는 이것에 대한 Apache 2.4 문서를 읽고 또 읽었습니다. /etc/apache2/apache.conf에 다음을 넣은 다음 /etc/apache2/mods-enabled/status.conf에, 마지막으로 /etc/apache2/sites-enabled/0firstvhost.conf에 넣었습니다.
<Location "/server-status">
SetHandler server-status
Require ip 10.211.55.0/24
</Location>
Apache 문서 및 ServerFault에서 이 주제에 대한 많은 게시물을 읽으면서 Apache 2.4에 적용할 수 있는 다양한 변형을 시도했습니다.
mod_status가 실행 중인지 확인하면 실행될 수 있습니다.
sudo apachectl -M | grep status
물론, 매번 apachectl configtest를 확인하고 apache2 서비스를 다시 시작하여 10.211.55.3/server-status로 이동할 수 있는지 확인했지만 Drupal PHP 앱이 계속 방해합니다. 이 가상 호스트의 루트에는 .htaccess가 없습니다.
나는 이 지시문을 지시문 안팎에 두었습니다.
VM의 IP 추가 및 VM 실행 내에서 브라우저를 확인합니다.
curl localhost/server-status
curl 10.211.55.3/server-status
Drupal 앱이 먼저 읽혀집니다. 다음에 무엇을 시도할까요? 고마워, 샘
답변1
제안한 이것을 찾았습니다.기본 사이트의 .htaccess가 mod_status를 방해했습니다.일부터. 그들의 솔루션은 저에게 효과적이지 않았지만 어쨌든 저는 가상 호스트로 작업하고 있기 때문에 .htaccess 없이 가상 호스트를 만들 수 있었습니다. 데비안의 /etc/hosts 파일에 임의의 호스트를 추가했습니다:
127.0.0.1 foo.org
다른 가상 호스트 사이에 빈 디렉토리를 만들고 새 사이트를 만들어 활성화했습니다.
<Directory /home/foo.org>
</Directory>
<Location /server-status>
SetHandler server-status
Require local
Require ip 127.0.0.1
Require ip ::1
</Location>
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName foo.org
</VirtualHost>
그래서 localhost에서 데이터를 볼 수 있습니다
curl foo.org/server-status
답변2
나 역시 내 문제가 있었다가상호스트 /etc/sites-enabled/example.conf
실제로 처리하고 싶었던 http://localhost/server-info에 대한 요청 처리mod_info.
# File /etc/sites-enabled/example.conf
<VirtualHost *:80>
ServerName example.com
# ...
</VirtualHost>
문제는 일부 요청이 구성된 요청과 일치하지 않는 경우 Apache에 기본 대체 요청 처리 동작이 있다는 IMHO였습니다.가상호스트'에스서버 이름(보다1,2). 처럼mod_info의 기본 구성 파일 /etc/apache2/mods-available/info.load
이며 /etc/apache2/mods-available/info.conf
자체 구성 파일을 지정하지 않습니다.가상호스트그리고서버 이름, 내 생각엔 Apache의 폴백이 시작된 것 같습니다.example.conf 가상호스트http://localhost/server-info에 대한 요청을 처리합니다.
다음과 같은 방법으로 문제를 해결했습니다.
파일 생성 /etc/apache2/mods-available/localhost-server-info.load
(알아채다mods-available
). 이것은복사원본 info.load
:
LoadModule info_module /usr/lib/apache2/modules/mod_info.so
파일 생성 /etc/apache2/sites-available/localhost-server-info.conf
(알아채다sites-available
). 이는 원본을 각색한 것으로 info.conf
, 콘텐츠를가상호스트그리고서버 이름:
# Get mod_info information by requesting http://localhost/server-info
#
# Enable by executing
# service apache2 stop
# a2dismod info
# a2enmod localhost-server-info
# a2ensite localhost-server-info
# service apache2 start
#
# Disable by executing
# service apache2 stop
# a2dissite localhost-server-info
# a2dismod localhost-server-info
# service apache2 start
<IfModule mod_info.c>
<VirtualHost *:80>
# Adapt ServerName to your needs
# Avoid ServerName collision with any other active VirtualHosts
ServerName localhost
<Location /server-info>
SetHandler server-info
# Adapt Require to your needs
# Require local
# Require ip 192.0.2.0/24
</Location>
</virtualHost>
</IfModule>
원본 비활성화정보모듈(아직 활성화되어 있는 경우)을 선택하고 새 모듈을 활성화합니다.로컬호스트-서버-정보기준 치수그리고대지:
service apache2 stop
a2dismod info
a2enmod localhost-server-info
a2ensite localhost-server-info
service apache2 start
- http://example.com/server-info이제 다음 부서에서 처리해야 합니다.example.comVirtualHost(아마도 404 페이지 표시).
- http://localhost/server-info는 이제 다음에서 처리해야 합니다.mod_info.
- http://127.0.0.1/서버-정보기타 구성되지 않은서버 이름s는 Apache의 폴백 처리에 따라 처리되어야 합니다. 예를 들어 내 예에서는example.comVirtualHost(아마도 404 페이지 표시).