Wirtualny host Apache oparty na * źródłowym * adresie IP
Czy można skonfigurować Apache dla różnych wirtualnych hostów w oparciu o
źródło
IP? (tj. ten sam interfejs, ta sama nazwa hosta, ale dwa różne wirtualne hosty z różną zawartością na podstawie
źródło
IP.)
Motywacją jest to, że mój adres IP może uzyskać dostęp do samej witryny, ale wszyscy inni mają dostęp do strony przechowywania. Wydaje się, że typowym rozwiązaniem jest użycie mod_rewrite do kierowania odwiedzających na oddzielną stronę w tym samym katalogu głównym, ale zamiast tego chciałbym użyć zupełnie innego katalogu głównego dla strony przechowywania.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
5 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
mod_rewrite
http://httpd.apache.org/docs/c ... .html
lub
mod_alias
http://httpd.apache.org/docs/c ... .html
możesz udostępniać zawartość z dowolnego folderu, dla którego ustawiłeś odpowiednie uprawnienia. Jest tylko jeden dokroot, ale możesz go zmienić w locie.
Jeden sposób, aby to zrobić:
Zauważ, że prawdopodobnie byłoby trochę czystsze rozwiązanie tego problemu z subdomeną dev.
Anonimowy użytkownik
Potwierdzenie od:
Oto inny pomysł. Co się stanie, jeśli skonfigurujesz dwa wirtualne hosty Apache, a następnie użyjesz iptables do przezroczystego przekierowywania odwiedzających na właściwy wirtualny host? Raczej
Albo coś podobnego. :)
Anonimowy użytkownik
Potwierdzenie od:
Apache 2.3 lub nowszy
>
W Apache 2.3 lub nowszym możesz najwyraźniej zrobić coś takiego (przetestowane):
Apache 2.2 lub starszy
>Aktualizacja: to nie jest najlepsze rozwiązanie. Zobacz poniżej.
Musisz zrobić takiego hakera. Uwaga
co oznacza „przez”. Bez tego rzeczywiste przekierowanie HTTP jest odsyłane z powrotem do klienta, co prawdopodobnie nie jest tym, czego chcesz. W
rzecz (oznaczająca „lub”) pokazuje, jak dopasować wiele adresów.
Musisz włączyć
co możesz zrobić w Debianie/Ubuntu za pomocą tego polecenia:
Zwróć uwagę, że ta metoda nie uniemożliwia całkowicie innym osobom dostępu do Twojej witryny testowej, więc prawdopodobnie chcesz dodać trochę zabezpieczeń lub po prostu wybrać bardziej niejasny prefiks niż
.
Zaktualizowana metoda mod_rewrite.
>
Ta metoda ma kilka problemów. Po pierwsze, Django nie działa z dwiema witrynami w tym samym procesie, co ten, musisz postępować zgodnie z instrukcjami zawartymi w
ta odpowiedź
https://stackoverflow.com/a/6591232/265521
.
Po drugie
mod_rewrite nie działa z
Zapytania
! Wszystko
cicho zmienia się na
a dane wiadomości zostaną usunięte. Bardzo nieprzyjemne! Dlatego polecam używać ...
wersja iptables
>
Po prostu uruchom serwery na dwóch różnych portach. Ten zawiera rzeczy WSGI, które mają mieć dwie oddzielne strony django.
Następnie możesz tego użyć
polecenie, aby skierować żądania z adresu IP do portu 80 do portu 1222:
+ Zmień
do
aby usunąć regułę.
Zauważ, że dokumentacja sugeruje dodanie dodatkowych plików
i
poleceń, ale stwierdziłem, że działało bez nich, a dodanie ich spowodowało zerwanie (przynajmniej w ubuntu).
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Bo inaczej pokaże błąd: