ошибка 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 игнорируется Я не понимаю, любые объяснения приветствуются. Спасибо.

user1447121
источник
Кажется, есть неявное значение по умолчанию 0.0.0.0:80, добавление которого явно сработало для меня. слушайте ec2-xx-xx-xxx-xxx.us-west-1.compute.amazonaws.com:80; за которой следует директива server_name.
user1447121
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 добавил серверный блок в файл по умолчанию. Это произошло, потому что я попытался получить сертификат до того, как настроил отдельный серверный блок.
Alex D

Ответы:

162

Я предполагаю, что вы используете Linux и используете gEdit для редактирования файлов. В /etc/nginx/sites-enabled, возможно, он оставил временный файл , например , default~(смотреть ~).

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

Удалите этот файл, и это решит вашу проблему.

Омар Аль-Итави
источник
исправил проблему для меня в Ubuntu 12.04 x86_64 + nginx
Стивен Спринкл,
1
можешь уточнить? Я не вижу никаких файлов "default ~" вообще в моем / etc / nginx / sites-enabled только в папке "default".
Дэвид Сенлот
3
@ Якобуд в /etc/nginx/sites-enabled. Я отредактировал свой ответ, чтобы упомянуть об этом.
Омар Аль-Итави 02
3
У меня был файл .save, который вызывал проблему.
Tisch
2
В моем случае некоторая конфигурация emacs создала файл с начальным и конечным #, например #portal#.
taffit
31

У вас server_name ec2-xx-xx-xxx-xxx.us-west-1.compute.amazonaws.comгде-то в конфиге есть другой .

VBart
источник
2
Я проверил это и не нашел. это предупреждение не появляется, когда я удаляю «ec2_xxx ...». Есть ли неявное значение по умолчанию для 0.0.0.0:80 в конфигурации nginx?
user1447121
Официальная документация :default: listen *:80 | *:8000;
VBart 08
2
Как бы то ни было, это было для меня localhost.
Rohmer
12

Должен быть определен только один локальный хост, проверьте сайты с поддержкой или nginx.conf.

Marin
источник
8
У меня было две одинаковых директивы server_name в двух отдельных файлах * .conf. Спасибо.
Фелипе Альварес
1
Это тоже решило мою проблему. Я поместил 2 одинаковых серверных блока в разные файлы * .conf. Спасибо!
Пранав Джитури
1
Кроме того , проверьте все файлы в этом каталоге: /etc/nginx/conf.d. Каждый домен может появляться только один раз (как servernameзначение) среди файлов в этом каталоге. Это была моя проблема!
SherylHohman