문제

최근까지, 나는 그렇게 많은 가상 사이트를 설정했습니다.

<VirtualHost 127.0.0.1:1234>
    ...

이것은 Linux 데스크탑을 사용하는 로컬 컴퓨터에서 테스트하는 데 적합합니다. MS와 Explorer가 내 Windows 노트북에서 내 페이지를 표시하는 방법을 테스트하기 위해

<VirtualHost *:1234>
    ...

또한 사이트를 불러서 잘 작동합니다. http : // [mylinuxservername] : 1234 내 노트북의 즉. 그러나 나는 그 와일드 카드를 로컬 란으로 제한하고 싶습니다. 192.nnn.nnn.nnn 또는 192.*.*.와 같은 IP를 연결하면 WILDCARD가 위에있는 경우 Windows 시스템에서 403이 금지됩니다. 로컬 서버는 여전히 Linux 상자에서 잘 작동합니다.

<VirtualHost 127.0.0.1:1234 192.*.*.*:1234>
    ...

또는

<VirtualHost 127.0.0.1:1234 192.nnn.nnn.nnn:1234> #exact IP of laptop
    ...

어쨌든, 나는 위의 두 번째 구성 예제에서 그 와일드 카드를 좋아하지 않습니다. 누구든지 힌트?

도움이 되었습니까?

해결책

의 매개 변수 VirtualHost 원격 주소가 아니라 듣는 지역 주소입니다.

Apache 2.4와 새로 사용하십시오 Require 지령:

Require ip 127.0.0.0/8
Require ip 192.0.0.0/8

Apache 2.2 이하를 사용하는 경우 authz_host 구성:

Order Allow,Deny
Allow from 127.0.0.0/8
Allow from 192.168.0.0/16

이것은 Apache 2.4에서도 작동 할 수도 있지만 Order 그리고 Allow 더 이상 사용되지 않았습니다.

다른 팁

나와 같은 멍청이가 여기에 오면 메모 :)

Apache HTTP 서버는 일반 텍스트 구성 파일에 지시문을 배치하여 구성됩니다. 기본 구성 파일은 일반적으로 httpd.conf라고합니다. 기본 구성 파일

버전 2.4의 경우

mod_access_compat에서 제공하는 허용, 거부 및 주문 지시는 더 이상 사용되지 않으며 향후 버전으로 사라질 것입니다. 그것들을 사용하지 않고 구식 자습서를 사용하지 않아야합니다. 액세스 제어

Require ip 127.0.0.0/8
Require ip 192.0.0.0/8

또는 (정확히 동일하지 않음)

Require ip 127.0
Require ip 192.168

iptables를 사용하여 기계 자체에 대한 액세스를 제한하십시오. 첫 번째 명령은 192 범위의 모든 네트워크에서 HTTP 트래픽을 허용합니다 (진정으로 로컬이 되려면 192.168이 필요하지만 잘못 될 수 있다고 생각합니다). 두 번째 명령은 단순히 포트 80의 다른 소스에서 패킷을 떨어 뜨립니다.

iptables -I 1 INPUT -s 192.0.0.0/8 -p tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT


iptables -I 2 INPUT -p tcp --dport 80 -m state --state NEW -j DROP 

그런 다음 가상 호스트에서는 할 수 있습니다 <VirtualHost *:80>

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top