Saat ini saya memiliki vhost yang berjalan di Nginx untuk foo.domain.com dan semuanya berfungsi dengan baik.
Saya membuat file baru untuk sub-domain baru yang ingin saya tambahkan bernama bar.domain.com. Saya menggunakan pengaturan yang sama untuk keduanya.
Ketika saya me-restart Nginx saya dapatkan
Restarting nginx: nginx: [warn] conflicting server name "" on 0.0.0.0:443, ignored nginx.
Ketika saya pergi ke bar.domain.com saya melihat apa yang seharusnya saya lihat, tetapi ketika saya pergi ke foo.domain.com saya melihat halaman yang terhubung dengan bar.domain.com.
Foo
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;
...
}
Batang
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;
}
Di mana saya salah?
nginx
ssl
virtualhost
RockJake28
sumber
sumber
server_name
konfigurasi SSL (443) juga.listen 443
pada setiap server tambahkanserver_name [foo/bar].domain.com
?Jawaban:
Sepertinya blok https Anda memerlukan nama server yang ditentukan misalnya, misalnya
sumber
Anda juga dapat memiliki file tambahan
/etc/nginx/sites-available/<site-name>
yang ditautkan/etc/nginx/sites-enabled/<site-name>
.Pengaturan dalam file-file itu mungkin bertentangan dengan
/etc/nginx/sites-available/default
file tersebutsumber
Saya memiliki masalah serupa ketika saya tidak sengaja memiliki nama server duplikat:
Diperbaiki dengan mengubahnya ke:
sumber
server_name
; Saya telah memiliki konfigurasi itu selama bertahun - tahun dan tidak pernah terlalu khawatir tentang pesan kesalahan itu. Ternyata saya salah memulai vhost yang seharusnya hanya menjadi templat 😮Juga periksa setiap file
/etc/nginx/conf.d
untuk duplikat.Dalam kasus saya,
nginx -t
lulus tes - saya mendapat pesan kesalahan ketika mencoba memulai nginx./etc/nginx/sites-enabled
File saya bebas dari duplikat domain (nama server), dan hanya memiliki 1 referensiserver_default
(dan tidak adalocalhost
duplikat)Sebagai gantinya, ada 2 file di
conf.d
mana keduanya mereferensikan domain tertentu (yaitu 2 file memiliki garis seperti:, diservername mydomain.com
mana salah satu nama domain terdaftar dalam 2 file).Solusi saya: Jadi, pastikan semua file
conf.d
hanya mereferensikan nilaiservername
(nama domain) tertentu sekali, paling banyak.( sayangnya setelah memperbaiki masalah di atas, saya sekarang mendapatkan:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
pesan kesalahan ketika saya mencoba untuk me-restart nginx.)Update : FYI, re: ...
Address already in use
pesan error di atas:Semua saya harus lakukan adalah
sudo fuser -k 80/tcp
kemudianservice nginx restart
bekerja seperti pesona!Saya menemukan jawabannya di sini: https://easyengine.io/tutorials/nginx/troubleshooting/emerg-bind-failed-98-address-already-in-use/
update2 :
Sudah disarankan bahwa proses lain menggunakan port 80, (itulah sebabnya mematikannya bekerja, dan juga masuk akal b / c nginx tidak berjalan pada saat itu).
https://community.letsencrypt.org/t/nginx-emerg-bind-to-80-failed-98-address-already-in-use/52914/4
Mereka juga menunjukkan bahwa melihat proses, sebelum hanya membunuhnya, mungkin memberikan wawasan tentang apa yang menyebabkan masalah tersebut.
Oleh karena itu, mungkin lebih baik menggunakan salah satu:
sudo fuser -k 80/tcp
(tanpa opsi -k), diikuti olehgrep
untuk angka-angka proses.systemctl list-unit-files
output, mungkin memberikan wawasan tentang proses yang saling bertentanganatau :, di
fuser -kivn tcp 80
mana:-v
mencetak nama proses selain id proses-i
membuatnya cepat sebelum membunuhhttps://community.letsencrypt.org/t/nginx-emerg-bind-to-80-failed-98-address-already- sedang digunakan / 52914/5
sumber
Dalam kasus saya, saya tidak dapat menemukan duplikat. Namun, saya memang memiliki default.conf di mana saya berkomentar semua konfigurasi kecuali blok server pembukaan dan braket penutupan ... dan ini menyebabkan kesalahan yang saling bertentangan.
Pada dasarnya, itu adalah penghitungan akun untuk blok server TANPA arahan server_name yang menyebabkan masalah, bukan duplikat.
sumber