2013-03-28 4 views
1

У меня есть сервер с nginx, который слушает порт 80 и имеет конфигурации для нескольких доменных имен, подключения к которым должны быть проксированы на разные порты.Nginx proxy несколько доменов для разных портов

Вот мои конфигурационные файлы:

domain1

#This is for redirecting everyone from www.domain.com to domain.com 
server { 
    listen 80; ## listen for ipv4; this line is default and implied 
    #listen [::]:80 default_server ipv6only=on; ## listen for ipv6 

    server_name www.domain1.com; 

    return 301 $scheme://domain1.com$request_uri; 
} 

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

     server_name domain1.com; 

     location/{ 
       proxy_pass http://localhost:8081/; 
       proxy_set_header X-Real-IP $remote_addr; 
     } 
} 

domain2

#This is for redirecting everyone from www.domain.com to domain.com 
server { 
    listen 80; ## listen for ipv4; this line is default and implied 
    #listen [::]:80 default_server ipv6only=on; ## listen for ipv6 

    server_name www.domain2.com; 

    return 301 $scheme://domain2.com$request_uri; 
} 

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

     server_name domain2.com; 

     location/{ 
       proxy_pass http://localhost:8090/; 
       proxy_set_header X-Real-IP $remote_addr; 
     } 
} 

DOMAIN3

#This is for redirecting everyone from www.domain.com to domain.com 
server { 
    listen 80; ## listen for ipv4; this line is default and implied 
    #listen [::]:80 default_server ipv6only=on; ## listen for ipv6 

    server_name www.domain3.com; 

    return 301 $scheme://domain3.com$request_uri; 
} 

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

     server_name domain3.com; 

     location/{ 
       proxy_pass http://localhost:8091/; 
       proxy_set_header X-Real-IP $remote_addr; 
     } 
} 

Все эти конфигурационные файлы (как обычно), расположенный в /etc/nginx/sites-available/ и слинкован в /etc/nginx/sites-enabled/

Когда я добавил первый файл все работает как шарм, когда я добавил второй файл это тот же самый, после добавления третьего файла nginx прекратил давать мне какие-либо сообщения, когда я пытаюсь сделать service nginx reload или service nginx restart или service nginx start.

Отвечает service nginx stop и service nginx status. По-видимому, эти функции работают, но другие функции в этих предварительных условиях не реагируют и ничего не делают. Результат ниже - это только скопировать-вставить с моей консоли.

# service nginx status 
[ ok ] nginx is running. 
# service nginx reload 
# service nginx restart 
# service nginx stop 
[ ok ] Stopping nginx: nginx. 
# service nginx start 
# service nginx status 
[FAIL] nginx is not running ... failed! 
# 

Если я удаляю символическую ссылку на третий файл, все работает отлично.

Итак, вот вопрос - это что-то не так с моей настройкой? или моя логика? или с nginx?

Среда:

- Debian Squeeze x64 
- Nginx version 1.2.6 

ответ

1

симптомы вы испытываете указать, что ваш Nginx конфигурации с 3-го файла неверен, поэтому перезагрузка не удается

Выход nginx -t должен сказать вы, где в вашем конфиге проблема.

+0

Спасибо! Это очень помогло. На самом деле проблема была с директивой 'server_name', где я неправильно использовал подстановочный знак. – AlexKey

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