질문/조언질답게시판

다른 분의 글을 보다보니, 'IP로 접속하지 못하게' 하는 문구가 보였습니다.

즉 서버 도메인으로는 접속을 하되, 서버 IP를 직접 입력해서 접속을 못하게끔 하라는 방법입니다.

 

구글에서 찾아보니 아파치에서는 allowoverride 부분을 주석처리 하고, allow from 에 운영중인 도메인을 입력하라는

게시글이 보이네요.

링크 : http://woosa.tistory.com/79

 

NGINX 의 경우는 어느 부분을 세팅해야, 서버 IP로 직접 접근하는것을 막을수 있을까요?

  • profile

    링크하신 소스는 좀 이상한데요. Allow from은 서버에 접속할 수 있는 사용자의 IP 주소를 제한하는 거지, 서버의 IP 주소나 도메인을 제한하는 기능이 아니거든요.

     

    아파치든 nginx든 방법은 비슷합니다. <VirtualHost> 또는 server { } 설정을 2개 따로 만들어서 하나는 IP, 하나는 도메인으로 연결하는 거지요. 예를 들어...

     

    server {

        listen 80 default;

        server_name 123.45.67.89;

        root /var/www/html;

    }

    server {

        listen 80;

        server_name example.com www.example.com;

        root /home/example/public_html;

        # ... 그 밖의 사이트 설정 ...

    }

     

    이렇게 하면 example.com이나 www.example.com으로 접속한 경우 /home/example/public_html 폴더의 사이트를 보여 주고, IP 주소나 그 밖에 님이 지정하지 않은 도메인을 사용하려고 시도하면 default로 처리되면서 /var/www/html 폴더를 보여 줍니다. 물론 이 폴더에는 아무 것도 없거나 빈 페이지만 넣어 두어야겠지요.

  • profile ?
    • KSH
    • 질문자

    답변 감사합니다.
    마땅한 키워드가 생각나지 않고, 이리저리 검색을 해봐도 시원한 답변이 안나왔는데
    조언 주셔서 정말 감사합니다.

    폴더 대신 404 에러를 내려면 어떤 코드를 추가적으로 넣어야할까요?

  • ? profile

    root 구문을 빼고 return 404; 해버리면 됩니다. nginx 설정 포맷은 프로그래밍 언어와 비슷해요. 어떤 값을 반환하라고 하면 진짜로 반환합니다 ㅎㅎ

  • profile ?
    • KSH
    • 질문자
    상세한 답변 정말 감사합니다.
  • ?
    오! 이거 찾고 있었는데 시원하게 답변을 ㄷ
  • ?
    음..근데 /etc/nginx/sites-enabled/default 부분을 수정하면 되나요?
  • ?
    server {
    listen 80 default;
    server_name 아이피 주소;
    return 404;
    }

    요로케 하니까 잘 됩니다 ㅋㅋ