나는 Django를 배우고 있고 내가 가지고 있는 Ubuntu 컴퓨터에서 Django 호스팅을 테스트하고 싶었습니다. 나는 이를 Apache와 mod_wsgi와 함께 제공하기로 결정했습니다. 나는 대부분의 일을 하고 있지만, 한 가지 궁금한 점이 있습니다. 127.0.0.1이나 192.168.xx 주소가 아닌 외부 IP 주소에서만 웹사이트에 액세스할 수 있습니다.
/etc/apache2/sites-available에 있는 내 django.conf 파일은 다음과 같습니다.
<VirtualHost *:80>
WSGIScriptAlias / /home/username/project
ServerName my_external_ip
Alias /media/ /home/username/project/media
Alias /static/ /home/username/project/static
<Directory /home/username/project>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
ServerName을 127.0.0.1로 설정하면 해당 페이지에서만 페이지가 로드됩니다. 또한 추가해야 할 점은 다른 위치에서 액세스할 때 정확하게 "로드되지 않음"이 아니라 내용이 없는 "Index of /"라는 제목의 Apache 페이지만 표시된다는 것입니다.
모든 경우에 Apache 제공 페이지를 중지하는 것은 무엇이며 페이지를 127.0.0.1 등으로 제공하려면 어떻게 해야 합니까? 호스팅해야 하는 더 좋은 방법이 있나요?
답변1
귀하의 대답은 다음과 같습니다 . HTTP 클라이언트가 보내는 헤더가 포트의 다른 블록 중 하나 와 일치하지 않는 apache2ctl -S
경우 설치의 "기본" 사이트가 우선합니다 .Host
ServerName
ServerAlias
<VirtualHost>
Django 사이트가 서버에 대한 모든 요청을 처리하도록 하려면 기본값을 비활성화하세요.
a2dissite default
...그런 다음 Apache를 다시 시작합니다.
그렇지 않고 Django가 인계받는 것에 대해 좀 더 자세히 알고 싶다면 ServerAlias
해당 구성에 다음을 추가할 수 있습니다 <VirtualHost>
.
ServerAlias internal.ip external.ip external.dns.name