Obecnie mam vhosta działającego na Nginx dla foo.domain.com i wszystko działa świetnie.
Utworzyłem nowy plik dla nowej subdomeny, którą chcę dodać, o nazwie bar.domain.com. Używam tych samych ustawień dla obu.
Po ponownym uruchomieniu Nginx otrzymuję
Restarting nginx: nginx: [warn] conflicting server name "" on 0.0.0.0:443, ignored nginx.
Kiedy wchodzę na bar.domain.com, widzę to, co powinienem zobaczyć, ale kiedy idę na foo.domain.com, widzę stronę, do której prowadzi bar.domain.com.
bla
upstream php-handler {
server unix:/var/run/php5-fpm.sock;
}
server {
listen 80;
server_name foo.domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443;
ssl on;
ssl_certificate [path_foo]/cacert.pem;
ssl_certificate_key [path_foo]/privkey.pem;
root [path]/foo;
...
}
Bar
server {
listen 80;
server_name bar.domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443;
ssl on;
ssl_certificate [path_bar]/cacert.pem;
ssl_certificate_key [path_bar]/privkey.pem;
root [path]/bar;
}
Gdzie się mylę?
nginx
ssl
virtualhost
RockJake28
źródło
źródło
server_name
w konfiguracji SSL (443).listen 443
na każdym serwerze dodaćserver_name [foo/bar].domain.com
?Odpowiedzi:
Wygląda mi na to, że twoje bloki https również wymagają podania nazw serwerów, np
źródło
Możesz również mieć dodatkowe pliki, z
/etc/nginx/sites-available/<site-name>
którymi są połączone/etc/nginx/sites-enabled/<site-name>
.Ustawienia w tych plikach mogą powodować konflikt z
/etc/nginx/sites-available/default
plikiemźródło
Miałem podobny problem, gdy przypadkowo miałem zduplikowaną nazwę serwera:
Naprawiono przez zmianę na:
źródło
server_name
; Miałem tę konfigurację od lat i nigdy nie martwiłem się zbytnio tym komunikatem o błędzie. Okazuje się, że błędnie założyłem vhost, który miał być tylko szablonem 😮Sprawdź także, czy w każdym pliku są
/etc/nginx/conf.d
duplikaty.W moim przypadku
nginx -t
zdałem testy - dostałem ten komunikat o błędzie podczas próby uruchomienia nginx.Moje
/etc/nginx/sites-enabled
pliki były wolne od duplikatów domeny (nazwy serwera) i zawierały tylko 1 odniesienie doserver_default
(i bezlocalhost
duplikatów)Zamiast tego były 2 pliki, w
conf.d
których oba odnosiły się do konkretnej domeny (tj. 2 pliki miały wiersz podobny do:,servername mydomain.com
gdzie jedna z nazw domen była wymieniona w 2 plikach).Moje rozwiązanie: więc upewnij się, że wszystkie pliki
conf.d
odnoszą się tylko do określonej wartościservername
(nazwy domeny) maksymalnie raz.( niestety po rozwiązaniu powyższego problemu otrzymuję:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
komunikaty o błędach podczas próby ponownego uruchomienia nginx.)Aktualizacja : FYI, re: ...
Address already in use
komunikat o błędzie powyżej:Wszystko co musiałem zrobić, to
sudo fuser -k 80/tcp
wtedyservice nginx restart
pracował jak urok!Znalazłem odpowiedź tutaj: https://easyengine.io/tutorials/nginx/trou Rozwiązywanie problemów / emerg-bind-failed-98-address-already- in- use/
aktualizacja2 :
Sugeruje się, że inny proces korzystał z portu 80 (dlatego zabicie go działało, a także ma sens, że nginx nie działał w tym czasie).
https://community.letsencrypt.org/t/nginx-emerg-bind-to-80-failed-98-address-already-in-use/52914/4
Wskazują również, że oglądanie procesu, zanim go zabije, może zapewnić wgląd w to, co spowodowało problem.
Dlatego prawdopodobnie lepiej jest użyć albo:
sudo fuser -k 80/tcp
(bez opcji -k), po której następuje agrep
dla tych numerów procesów.systemctl list-unit-files
wynik, może zapewnić wgląd w proces konfliktulub:
fuser -kivn tcp 80
gdzie:-v
drukuje nazwę procesu oprócz identyfikatora procesu,-i
powoduje wyświetlenie monitu przed zabiciemhttps://community.letsencrypt.org/t/nginx-emerg-bind-to-80-failed-98-address-already- w użyciu / 52914/5
źródło
W moim przypadku nie mogłem znaleźć żadnego duplikatu. Jednak miałem plik default.conf, w którym skomentowałem całą konfigurację oprócz bloku serwera otwierającego i klamry zamykającej ... i to spowodowało błąd powodujący konflikt.
Zasadniczo był to nierozliczony blok serwera BEZ dyrektywy nazwa_serwera, która spowodowała problem, a nie duplikat.
źródło