![nginx: [предупреждение] конфликтующее имя сервера](https://rvso.com/image/726392/nginx%3A%20%5B%D0%BF%D1%80%D0%B5%D0%B4%D1%83%D0%BF%D1%80%D0%B5%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5%5D%20%D0%BA%D0%BE%D0%BD%D1%84%D0%BB%D0%B8%D0%BA%D1%82%D1%83%D1%8E%D1%89%D0%B5%D0%B5%20%D0%B8%D0%BC%D1%8F%20%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0.png)
Я не могу понять, почему возникает эта ошибка:
nginx: [предупреждение] конфликтующее имя сервера "stage.mydomain.com" на 0.0.0.0:80, игнорируется nginx: [предупреждение] конфликтующее имя сервера "stage.mydomain.com" на 0.0.0.0:443, игнорируется
Мой файл симлинков с поддержкой сайтов выглядит так. Я не очень хорошо разбираюсь в этом, но я единственный, кто имеет какие-то знания о серверах. Это было скопировано из производства. Я вижу, что порты 80 и 443 дублируются, но есть некоторые различия в конфигурации в каждом блоке.
server {
listen 80;
server_name stage.mydomain.com;
return 301 https://stage.mydomain.com$request_uri$is_args;
}
server {
listen 80;
server_name stage.mydomain.com;
location '/.path/here' {
default_type "text/plain";
root /home/username/www/app_name/current/public;
}
return 301 https://stage.mydomain.com$request_uri$is_args;
}
server {
listen 443;
ssl on;
ssl_certificate /a/path/to/my/file.pem;
ssl_certificate_key /a/path/to/my/key.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
##ssl_ciphers HIGH:!aNULL:!MD5;
ssl_ciphers "randomstuffhere";
ssl_prefer_server_ciphers on;
client_max_body_size 32000M;
server_name stage.mydomain.com;
return 301 https://stage.mydomain.com$request_uri;
}
server {
listen 443;
ssl on;
ssl_certificate /a/path/to/my/file.pem;
ssl_certificate_key /a/path/to/my/key.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
##ssl_ciphers HIGH:!aNULL:!MD5;
ssl_ciphers "randomstuffhere";
ssl_prefer_server_ciphers on;
client_max_body_size 32000M;
server_name stage.mydomain.com;
root /home/username/www/app_name/current/public; # <--- be sure to point to 'public'!
passenger_enabled on;
rails_env staging;
}
решение1
Не может быть 2 операторов сервера, использующих одно и то же server_name. Nginx не будет знать, какой из них использовать, если поступит запрос, поскольку оба используют одно и то же имя виртуального хоста. Таким образом, nginx будет использовать первое совпадение.
Из вашего фрагмента конфигурации следует, что вы можете удалить оператор 2-го сервера port 80, так как корневой каталог бесполезен, так как вы в любом случае выполняете перенаправление (что то же самое и для первого оператора сервера).
Также удалите первый оператор сервера 443, так как это приведет к возникновению цикла перенаправления на самого себя.