Редактировать: Сначала прочтите это:
Помимо принятого ответа, эти ошибки возникают при запуске nginx без systemd. Убить nginx: ps -ax | grep nginx
→ найти главный пид nginx → kill ###
; запустите nginx с systemd: systemctl start nginx
.
Если systemctl не используется для запуска nginx, остановка systemctl nginx не работает (по крайней мере, на моем сервер); Итак, перезапуск systemctl nginx выдает эту ошибку при попытке запуска nginx во второй раз.
О моей настройке:
Я нахожусь на Debian 10, Buster, с живым сервер. Я проверил оба доменных имени, и они транслируют сами по себе, используя эти файлы конфигурации, но они не передают, когда оба файла конфигурации активны.
Что я пытаюсь сделать sh:
Как настроить два веб-сайта на один IP-адрес, используя nginx?
Сообщения об ошибках:
nginx: [emerg] a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-enabled/example.com:22
строка 2.
nginx: [emerg] a duplicate default server for 0.0.0.0:443 in /etc/nginx/sites-enabled/example.com:22
строка 2. default_server
используется на порту 443.
nginx: [emerg] duplicate listen options for [::]:443 in /etc/nginx/sites-enabled/example.com:23
строка 3. default_server
пробуется как http2
в одном файле и используется порт 443.
nginx: [emerg] duplicate listen options for [::]:80 in /etc/nginx/sites-enabled/example.com:23
строка 3. default_server
пробуется как http2
в одном файле.
nginx: [emerg] invalid parameter "example.com" in /etc/nginx/sites-enabled/example.com:23
строка 3: default_server
пробуется как example.com
Файлы конфигурации (комментарии удалены):
Существует два таких файла (код показан ниже) . Мои конфигурационные файлы точно такие же, как в приведенном ниже блоке кода, с одним отличием: в обоих файлах example.com
- это настоящее уникальное доменное имя, которым я владею.
Мои конфигурационные файлы живут в /etc/nginx/sites-available
и они символически связаны с /etc/nginx/sites-enabled
.
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/example.com; #example.com is different in both files.
index index.html index.htm index.nginx-debian.html;
server_name example.com www.example.com; #example.com is different in both files.
location / {
try_files $uri $uri/ =404;
}
}
Первичный диссонанс:
Другой вопрос стека говорит о необходимости переписать эти строки или закомментировать одну из них. Перезаписи либо не устраняют ошибку, либо приводят к ситуации, когда файлы не предоставляются публично (example.com никуда не денется).
Резюме:
Этот вопрос, похоже, касается строки 2, строка 3 или строка 2 и 3.
По сути, все ведущие инструкции либо прямо говорят читателю использовать код выше -или- , они не упоминают эти строки .