У меня есть сервер с 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
Спасибо! Это очень помогло. На самом деле проблема была с директивой 'server_name', где я неправильно использовал подстановочный знак. – AlexKey