127.0.0.1을 통해서만 아파치를 액세스 할 수있게됩니까? 가능합니까?


19

Apache 서버를 설정했는데 PHP / MySQL이 제대로 작동합니다!

그러나 문제는 개발 전용 서버 이기 때문에 어떻게 이것을 비공개로 유지 합니까? 콘텐츠를 비공개로 유지하는 유일한 이유는 스크립트가 잘못되었을 경우, 공개 사이트가되었을 때 아파치 오류가 표시되는 것을 원하지 않습니다 (그리고 다른 사람들도 동일한 네트워크를 공유한다는 사실이 아닙니다!). 내 PC를 웹 호스트로 사용할 가능성-실제 라이브 사이트에 웹 호스팅 제공 업체 경로를 사용하는 경향이 있습니다.

현재 세 가지 방법으로 액세스 할 수 있습니다.

  • http : // localhost (또는 http://127.0.0.1 , 대체 방법 및 localhost의 IP이지만 어느 쪽이든 허용됩니다!)

  • http 192.168.0.1 (내 라우터의 IP)

  • http pc-name-here (내 PC의 이름, 분명히 이것은 Windows PC마다 다릅니다!)

[참고로, 링크를 게시 할 수 없으므로 다른 두 개의 경우 첫 번째와 같이 콜론 / 슬래시를 삽입해야합니다].

그러나 첫 번째 것을 통해서만 액세스하고 싶습니다. 포트 80에서 수신 대기하고 있습니다 (변경하고 싶지 않습니다). 이것이 가능하지 않습니까, 아니면 실수입니까? 나는 네트워크 측면보다 PHP / 웹 디자인에 대해 조금 더 알고 있으므로 이것이 처음입니다!

기본적으로 외부 IP 주소 또는 192.168.0.1이 아닌 해당 컴퓨터의 로컬 호스트를 통해서만 액세스 할 수 있기를 바랍니다.

httpd.conf를 편집하고 모든 테스트 베드 사이트에서 거부를 사용해야합니까, 아니면 다른 해결책이 있습니까?

예:

<Directory /www/vhosts/localhost/>
    Options All
    AllowOverride All
    order allow,deny
    allow from 127.0.0.1
            deny from 192.168.0.1
            deny from my-pc-name
</Directory>
  • 그것은 예이지만 여기에 무엇이 옳고 그른지 확실하지 않습니다!

내 운영 체제는 Windows 7 Ultimate입니다.

나는 그물을 둘러 보았지만 그중 일부는 나에게 약간 기술적 인 것처럼 보였다.

어떤 것을 권 하시죠?

답변:


34

가장 쉬운 방법은 Listen지시문을 사용하는 것입니다. 기본적으로 httpd.conf에는 다음과 같은 줄이 있습니다.

Listen *:80

이는 모든 컴퓨터의 네트워크 주소에서 포트 80의 ro 요청에 응답한다는 의미입니다. 로 변경 :

Listen 127.0.0.1:80

아파치에게 로컬 어댑터의 요청에만 응답하여 다른 것을 무시하도록 지시합니다.


12

청취 옵션이 가장 좋지만 FYI와 마찬가지로 allow / deny를 사용하여 수행 할 수 있습니다

<Directory /www/vhosts/localhost/>
    Options All
    AllowOverride All
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Directory>

Order deny,allow아파치에게 "특별히 허용되지 않는 한 모든 요청 거부"( Order allow,deny반대로, IE는 특별히 차단되지 않은 한 모든 요청 허용)
Deny from allOrder deny,allow사용자가 특별히 열지 않는 한 모든 IP의 모든 요청을 차단한다는 점과 비슷 합니다. 모두를 사용하는 일반적인 연습 것으로 보인다 Order deny,allowDeny from all하지만 확실히 그들은 모두 같은 일을 수행 할 때 왜 100 %가 아니에요
Allow from 127.0.0.1말한다 "127.0.0.1에서 모든 요청을 허용". 127.0.0.1은 localhost에 매핑되므로 http://127.0.0.1/ 또는 http : // localhost / 를 사용할 수 있습니다.

로컬 호스트에서 사이트를 요청하지 않는 사람에게는 403 (Forbidden) 오류가 발생합니다.

다른 유용한 것들;
Allow from 192.168.0.네트워크에있는 모든 사람의 요청을 허용합니다 (네트워크가 192.168.0.0-192.168.0.255 인 경우)
허용 / 거부 규칙이 순서대로 처리됩니다.

Deny from 192.168.0.2
Allow from 192.168.0.2

요청을 허용하고

Allow from 192.168.0.2
Deny from 192.168.0.2

192.168.0.2의 요청을 거부합니다.

그래서

Deny from 192.168.0.2
Allow from all

특별히 거부되었지만 192.168.0.2의 요청을 허용합니다.

.htaccess 파일 또는 디렉토리별로 허용 / 거부 규칙을 사용할 수도 있습니다.


"주문 허용, 거부"가 아니라 "거부 거부, 허용"인지 확인하십시오. 사람들이 끊임없이 만드는 작은 실수.
Scott Chu

3

포트 청취에 대한 각 참조가 로컬 호스트만을 청취하도록 / etc / apache2에서 ports.conf를 변경했습니다. 다른 파일에는 수신 명령이없는 것 같습니다. 아파치를 다시 시작한 후 이러한 변경 사항이 원하는 효과를 갖는 것 같습니다.

/etc/apache2/ports.conf

NameVirtualHost *:80
########################## Listen 80
Listen 127.0.0.1:80

<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
###############################Listen 443
Listen 127.0.0.1:443
</IfModule>

<IfModule mod_gnutls.c>
##################################Listen 443
Listen 127.0.0.1:443
</IfModule>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.