Mam instancję działającą na nginxie, która obsługuje kilka stron internetowych. Pierwszym z nich jest komunikat o statusie na adresie IP serwera. Druga to konsola administracyjna pod numerem admin.domain.com
. Działają świetnie. Teraz chciałbym, aby wszystkie inne żądania domeny przechodziły do pojedynczego index.php
- Mam mnóstwo domen i subdomen i niepraktyczne jest ich lista w konfiguracji nginx.nginx nazwa_serwera - wildcard lub catch-all
Do tej pory próbowałem ustawić server_name
na *
, ale to się nie udało jako nieważny symbol wieloznaczny. *.*
działa, dopóki nie dodaję innych bloków serwera, wtedy domyślam się, że to powoduje konflikt z nimi.
Czy istnieje sposób na uruchomienie bloku catch-all serwera w nginx po zdefiniowaniu innych witryn?
N.B. Nie jestem spamerem, są to autentyczne strony z przydatnymi treściami, są zasilane przez ten sam CMS z bazy danych!
Działa doskonale - wielkie dzięki. Nie mogłem użyć 'nazwa_serwera _;' dla strony statusu na adresie IP, musiałem podać 'nazwa_serwera x.x.x.x', ale to jest w porządku! – Tak
Dodanie 'default_server' nie działa na Nginx 1.4.6, który jest obecnie najnowszą wersją na Ubuntu 14.04 ... Kiedy dodam to, komenda' configtest' zwraca błąd, a zrestartowanie serwera nie działa zarówno. Próbowałem dokładnie tej samej konfiguracji na moim serwerze z Debian jessie, który ma nginx 1.6.2 i działa idealnie. Więc wypróbuj inną wersję, jeśli jesteś na 1.4.6 ... – Nicomak
Nota boczna dla HTTPS: dyrektywa '' 'default_server''' ustawia również serwer, który będzie obsługiwać uzgadnianie SSL dla żądań na tym porcie. Tak więc, jeśli chcesz, aby blok serwera A obsługiwał SSL, ale serwer B działa jako catchall dla HTTPS, rozwiązaniem jest ustawienie '' nazwa_serwera ~^(. +) $ '' 'Na serwerze B. – Luke