LINUX.ORG.RU
решено ФорумAdmin

nginx вместо нужного виртуального сервера перебрасывает на сайт по умолчанию.

 ,


0

1

Всем привет!

Не могу понять, найти ответ, голова уже поломалась!

В общем! Стоит связка nginx + apache на vds. Провайдер выда мне IP хостинга 78.46.190.148, который перенапраляется на IP сервера 172.31.1.100.

У меня два сайта dymok.net и kagorta.ru. Если я убираю nginx и оставляю только apache на 80 порту, то оба сайта открываются, все хорошо и отлично. Если я ставлю связку nginx + apache на порт 8080, то виртаульные хосты не подключаются. Т.е. главная страница открывается, но не подрубаются всевозможные картинки, css.

При этом, файлы виртуальных хостов nginxом обрабатываются. Т.е. если ошибку в одном из этих файлов, он ругается. Я специально прописал для каждого сайта свой файл логов, они создаются. Но по прежнему все пути перенапраляются на root дефолтного сервера, которым является либо первый .conf виртаульного хоста, либо при указании default_server на его root.

При этом в логах что то типа:

2016/03/26 15:06:19 [error] 12936#0: *403 open() «/home/kagorta/html/e12c0c1e.jpg» failed (2: No such file or directory), client: 83.219.151.151, server: kagorta.ru, request: «GET /e12c0c1e.jpg HTTP/1.1», host: "http://www.dymok.net"

если файл открвыается из php, то:

2016/03/26 14:04:43 [error] 11826#0: *5 open() .......

Ни как не могу вдуплить, что не так...

Конфиги можно скачать тут: http://kagorta.ru/download/a/cfg.zip

Если я правильно тебя понял то 78.46.190.148 это nginx а 172.31.1.100 верно?

Ходил на твои сайты, первый вообще не работает на втором вроде нормально все.

Naby
()
Ответ на: комментарий от Naby

На первом пока пусто. Что бы работал второй я его дефолтным воткнул, поэтому он работает. На первом можно попробовать открыть http://www.dymok.net/e12c0c1e.jpg он там есть )

dympopov
() автор топика
Ответ на: комментарий от Naby

«Если я правильно тебя понял то 78.46.190.148 это nginx а 172.31.1.100 верно?»

Походу да. Т.е. у хостера стоит редирект с внешнего IP 78.46.190.148 на IP именно этого сервака 172.31.1.100... ну т.е. с мира 172.31.1.100 не работает, только внутри их локали. Это же VDS, там несколько серваков на одном компе.

dympopov
() автор топика
Ответ на: комментарий от dympopov

Ну если у тебя:

78.46.190.148 (nginx)

172.31.1.100 (apache)

То попробуй сделать проброс на nginx

server {
          listen  80;
          server_name  dymok.net www.dymok.net;

          location / {
                proxy_pass   http://172.31.1.100;
                proxy_set_header   Host    $host;
                proxy_set_header   X-Real-IP $remote_addr


ну и так далее

должно работать
Naby
()
Ответ на: комментарий от Naby

пробовал, я уже 172.31.1.100:80 поставил от бессилия ) изначально стояло просто 80 та же байда (

dympopov
() автор топика
Ответ на: комментарий от Naby

Спасибо! Похоже нашел в чем проблема ) Присмотрелся к вашему примеру и увидел, что у вас стоит:

proxy_set_header Host $host;

Т.е. $host вместо $http_host как было у меня. Убрал, почистил конфиг максимально, рут оставил только в корневом локашионе и ура! Все заработало )

Еще раз спасибо! )

dympopov
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.