Страница 1 из 1

Apache22 + Nginx

Добавлено: 2011-12-11 23:20:26
cubespace
Здравствуйте!

система
Ubuntu Server x64

Возникла следующая проблема.
На сервере установлен nginx(frontend) и apache(backend).
Когда мы ссылаемся на подобный адрес http://mysite.ru/dir, то почему-то идёт редирект на порт апача, т.е адресная строка теперь выглядит так: http://mysite.ru:81/dir/

Проблема, вероятно, заключается в том, что в конце dir не стоит слеш и сервер пытается его поставить редиректом, но делает это не так, как хотелось бы.

Код: Выделить всё

server {
listen 80;
server_name mysite.ru www.mysite.ru;
access_log /var/log/nginx.access_log;
location ~* ^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$ {
root /var/www/mysite/;
index index.html index.php;
access_log off;
expires 30d;
}
location ~ /\.ht {
deny all;
}
location / {
proxy_pass http://127.0.0.1:81/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_set_header Host $host;
proxy_connect_timeout 60;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_redirect off;
proxy_set_header Connection close;
proxy_pass_header Content-Type;
proxy_pass_header Content-Disposition;
proxy_pass_header Content-Length;
}
}

Код: Выделить всё

NameVirtualHost *:81
Listen 81

У меня nginx находится на 80 порту, апач на 81.

Возможно ли это как-то исправить?

Re: Apache22 + Nginx

Добавлено: 2011-12-15 19:39:08
cubespace
Никто не знает ?

Re: Apache22 + Nginx

Добавлено: 2011-12-16 0:04:00
blade_007
Apache, скорее всего, должен сидеть на 127.0.0.1:81, а у вас на всех интерфейсах на 81 порту (NameVirtualHost *:81)
А Location /dir уже apache обрабатывает.

Re: Apache22 + Nginx

Добавлено: 2011-12-17 13:12:08
cubespace
Так и сделал:

NameVirtualHost *:81
Listen 127.0.0.1:81

и везде в виртуалхостах

(NameVirtualHost *:81)

но тоже самое (

Re: Apache22 + Nginx

Добавлено: 2011-12-17 22:01:20
blade_007

Код: Выделить всё

NameVirtualHost 127.0.0.1:81

Re: Apache22 + Nginx

Добавлено: 2011-12-17 22:54:31
cubespace

Код: Выделить всё

[Sat Dec 17 21:52:42 2011] [warn] _default_ VirtualHost overlap on port 81, the first has precedence
[Sat Dec 17 21:52:42 2011] [warn] NameVirtualHost 127.0.0.1:81 has no VirtualHosts
 ... waiting [Sat Dec 17 21:52:43 2011] [warn] _default_ VirtualHost overlap on port 81, the first has precedence
[Sat Dec 17 21:52:43 2011] [warn] NameVirtualHost 127.0.0.1:81 has no VirtualHosts
вот что выдает, если поставить :

NameVirtualHost 127.0.0.1:81

Re: Apache22 + Nginx

Добавлено: 2011-12-17 23:37:03
blade_007

Код: Выделить всё

NameVirtualHost 127.0.0.1:81
<VirtualHost 127.0.0.1:81>
****
</VirtualHost>

Re: Apache22 + Nginx

Добавлено: 2011-12-18 1:37:27
cubespace
не помогло(
все равно пытается открыть через порт

http://mysite.ru/dir

Код: Выделить всё

Firefox не может установить соединение с сервером mysite.ru:81.
это при такой записи:

Код: Выделить всё

NameVirtualHost *:81
Listen 127.0.0.1:81
а если при такой :

Код: Выделить всё

NameVirtualHost *:81
Listen *:81
то открывается http://mysite.ru/dir
Вот так:
http://mysite.ru:81/dir/

А эта запись нечего не изменила :

Код: Выделить всё

NameVirtualHost 127.0.0.1:81
<VirtualHost 127.0.0.1:81>
****
</VirtualHost>

Re: Apache22 + Nginx

Добавлено: 2011-12-19 22:12:34
blade_007
Можете привести настройки виртуального хоста апача, а также логи nginx и apache, касающиеся таких обращений? В приложении явно используется порт 81?

Есть ли возможность проверить - записать <? print "123"; ?> в файл в директории /dir и вызвать его извне http://HOST/dir/test.php

Re: Apache22 + Nginx

Добавлено: 2011-12-20 23:20:48
blade_007
В настройках nginx попробуйте заменить:

Код: Выделить всё

proxy_pass http://127.0.0.1:81/;
на

Код: Выделить всё

proxy_pass http://127.0.0.1:81;