nginx помилка "конфліктуюче ім'я сервера" ігнорується [закрито]


125
server {
    #listen   80; ## listen for ipv4; this line is default and implied
    #listen   [::]:80 default ipv6only=on; ## listen for ipv6

    #root /usr/share/nginx/www;

root /home/ubuntu/node-login;
    # Make site accessible from 
    server_name ec2-xx-xx-xxx-xxx.us-west-1.compute.amazonaws.com;

location /{
    proxy_pass http://127.0.0.1:8000/;
    proxy_redirect off;
}

}

це призводить до помилки nignx [попереджати] конфліктуючу назву сервера "ec2 ..." на 0,0.0.0:80 проігноровано Я не розумію, будь-яке пояснення оцінено. Дякую.


Здається, неявна за замовчуванням 0,0.0.0:80, додавши, що це явно працювало для мене. слухати ec2-xx-xx-xxx-xxx.us-west-1.compute.amazonaws.com:80; після чого працювала директива імені сервера.
користувач1447121

1
Перевірте, /etc/nginx/sites-available/<site-name>що пов’язано з /etc/nginx/sites-enabled/<site-name>. Додаткові файли тут можуть містити дублікати або конфліктну конфігурацію.
Hanxue

змінившись, config.force_ssl = trueщоб falseвирішити мою проблему, на це знадобилося кілька днів
Муїде Ібукун

1
Для мене ця сама помилка була внаслідок відсутньої напівкрапки в кінці одного з server_nameрядків, коли у мене було кілька serverзаписів.
Кевін

2
Certbot з LetsEncrypt додав серверний блок у файл за замовчуванням у моєму випадку. Це стало причиною того, що я намагався отримати сертифікат, перш ніж встановити окремий серверний блок.
Алекс Д

Відповіді:


162

Я припускаю, що ви працюєте з Linux, а ви використовуєте gEdit для редагування своїх файлів. У /etc/nginx/sites-enabled, можливо, він залишив тимчасовий файл, наприклад default~(дивіться ~).

Залежно від редактора, файл може бути названий .saveабо щось подібне до нього. Просто запустіть, $ ls -lahщоб побачити, які файли нецікаво там бути, і видаліть їх (спасибі @Tisch за це).

Видаліть цей файл, і він вирішить вашу проблему.


виправлено проблему на Ubuntu 12.04 x86_64 + nginx
Стівен Спринк

1
ви можете уточнити? Я не бачу жодних файлів "за замовчуванням ~" у моїй / etc / nginx / sites-тільки в папці "default".
Девід Сентлот

3
@Jakobud в /etc/nginx/sites-enabled. Я відредагував свою відповідь, щоб згадати її.
Омар Аль-Ітаві

3
У мене був файл .save, який викликав проблему.
Тиш

2
У моєму випадку деяка конфігурація emacs створила файл із провідним та заднім числом #, наприклад #portal#.
таффіт

31

У вас є ще server_name ec2-xx-xx-xxx-xxx.us-west-1.compute.amazonaws.comдесь у конфігурації.


2
Я перевірив це і не знайшов жодного. це попередження не дає, коли я видаляю "ec2_xxx ...". Чи є неявний за замовчуванням для 0,0.0.0:80 у nginx config?
користувач1447121

Офіційна документація :default: listen *:80 | *:8000;
VBart

2
Це було для мене, як би там не було localhost.
Ромер

12

Повинен бути лише один localhost, перевірити сайти, включені або nginx.conf.


8
У мене було дві однакові директиви "ім'я сервера" у двох окремих * .conf файлах. Дякую.
Феліпе Альварес

1
Це вирішило і моє питання. Я розмістив 2 однакові блоки сервера в різних * .conf файлах. Дякую!
Пранів Джитурі

1
Крім того , перевірте всі файли в цьому каталозі: /etc/nginx/conf.d. Кожен домен може також з’являтися лише один раз (як servernameзначення) серед файлів у цьому каталозі. Це було моє питання!
Шерил Хохман
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.