2014-01-29 6 views
5

Используя Nginx, я создал настройку нескольких доменов для одного сервера, состоящего из четырех отдельных сайтов. Когда я запускаю Nginx, я получаю сообщение об ошибке, и сайты, похоже, смешиваются, поскольку ввод одного URL-адреса ведет к одному из других сайтов. отображаетсяНесколько доменов на одном сервере указывают на неправильные сайты

Сообщение об ошибке -

Restarting nginx: nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored 
nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored 
nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored 
nginx. 

Я настроил все четыре домена в аналогичным образом в их соответствующем файле под/сайтов доступный -

server { 
     listen 80; 

     root /var/www/example.com/public_html; 
     index index.php index.html index.htm; 

     server_name example.com www.example.com; 

     location/{ 
       try_files $uri $uri/ /index.html; 
     } 

     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
     location ~ \.php$ { 
       try_files $uri =404; 
       fastcgi_pass unix:/var/run/php5-fpm.sock; 
       fastcgi_index index.php; 
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
       include fastcgi_params; 

     } 

} 

Я проверил и нет файла по умолчанию в/sites-enabled. Угадав, что в основной конфигурации Nginx может быть неправильная настройка, но не уверен, что искать.

+0

может быть, у вас есть 'server', определенный в главном конфигурационном файле (' nginx.conf')? –

+0

Нет, просто параметры http и событий. Что-нибудь, в частности, я должен искать? –

+0

Я спросил, потому что по умолчанию 'nginx.conf' имеет кучу примеров блоков' server', возможно, вы забыли удалить их. Что входит в ваш основной файл конфигурации? Можете ли вы опубликовать его в pastebin или что-то подобное? –

ответ

2

Проверьте каталог /etc/nginx/sites-enabled/, если есть временный файл, например ~default. Удалите его и устраните проблему.

Кредит: @OmarIthawi nginx error "conflicting server name" ignored

+0

Спасибо, но я уже удалил это в более ранней настройке. –

9

Ваш nginx.conf загружает свои внешние файлы сервера с пути вы имеете в ваших включают директивы.

Если у вас есть файл в include /etc/nginx/conf.d/*.conf;, и его символическая ссылка на include /etc/nginx/sites-enabled, он будет загружать файл дважды, что приведет к этой ошибке.

+0

Спасибо @JClarke. Это решило проблему для меня. Я просто прокомментировал «include /etc/nginx/conf.d/*.conf;» line в моем файле nginx.conf, и сообщение об ошибке исчезло! –

1

В моем случае нет сайтов-не включен ни двойной включает в себя ....

Раствор избежать более одной ссылки (если учесть все conf.d файлы в целом), чтобы «слушать 80» и «имя_сервера» ...

В моем случае default.conf и kibana.conf оба включены ссылки на этих ребята ... Я прокомментировал тот, который был по умолчанию, и проблема решена!

Мои 2 цента ....

3

У меня была такая же проблема с моим Ubuntu/Nginx/gunicorn/Джанго 1.9 сайты на моей локальной машине. У меня было два файла nginx в моем/etc/nginx/sites-enabled. Удаление одного из них разрешено для работы сайта. Включение обоих файлов в итоге всегда переходило на один из двух сайтов. Я не уверен, как он это выбрал.

Таким образом, после глядя на несколько вопросов, переполнение стека, не найдя решения, я пошел здесь: http://nginx.org/en/docs/http/request_processing.html

Это заканчивается, что вы можете иметь несколько серверов в одном сайтов с поддержкой файла, поэтому я изменил к этому:

server { 
    listen 80; 
    server_name joelgoldstick.com.local; 
    error_log /var/log/nginx/joelgoldstick.com.error.log debug; 
    location/{ 
     proxy_pass http://127.0.0.1:8002; 
    } 
    location /static/ { 
     autoindex on; 
     alias /home/jcg/code/python/venvs/jg18/blog/collect_static/; 
    } 
} 

server { 
    listen 80; 
    server_name cc-baseballstats.info.local; 
    error_log /var/log/nginx/baseballstats.info.error.log debug; 
    location/{ 
     proxy_pass http://127.0.0.1:8001; 
    } 
    location /static/ { 
     autoindex on; 
     alias /home/jcg/code/python/venvs/baseball/baseball_stats/collect_static/; 
    } 
} 

теперь я могу получить доступ к обоим своих сайтов локально

 Смежные вопросы

  • Нет связанных вопросов^_^