Apache22 + Nginx

Есть и такой ОС.

Модератор: weec

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
cubespace
мл. сержант
Сообщения: 114
Зарегистрирован: 2010-02-25 0:23:15

Apache22 + Nginx

Непрочитанное сообщение cubespace » 2011-12-11 23:20:26

Здравствуйте!

система
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.

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

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
cubespace
мл. сержант
Сообщения: 114
Зарегистрирован: 2010-02-25 0:23:15

Re: Apache22 + Nginx

Непрочитанное сообщение cubespace » 2011-12-15 19:39:08

Никто не знает ?

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Apache22 + Nginx

Непрочитанное сообщение blade_007 » 2011-12-16 0:04:00

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

Аватара пользователя
cubespace
мл. сержант
Сообщения: 114
Зарегистрирован: 2010-02-25 0:23:15

Re: Apache22 + Nginx

Непрочитанное сообщение cubespace » 2011-12-17 13:12:08

Так и сделал:

NameVirtualHost *:81
Listen 127.0.0.1:81

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

(NameVirtualHost *:81)

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

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Apache22 + Nginx

Непрочитанное сообщение blade_007 » 2011-12-17 22:01:20

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

NameVirtualHost 127.0.0.1:81

Аватара пользователя
cubespace
мл. сержант
Сообщения: 114
Зарегистрирован: 2010-02-25 0:23:15

Re: Apache22 + Nginx

Непрочитанное сообщение cubespace » 2011-12-17 22:54:31

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

[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

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Apache22 + Nginx

Непрочитанное сообщение blade_007 » 2011-12-17 23:37:03

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

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

Аватара пользователя
cubespace
мл. сержант
Сообщения: 114
Зарегистрирован: 2010-02-25 0:23:15

Re: Apache22 + Nginx

Непрочитанное сообщение cubespace » 2011-12-18 1:37:27

не помогло(
все равно пытается открыть через порт

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>

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Apache22 + Nginx

Непрочитанное сообщение blade_007 » 2011-12-19 22:12:34

Можете привести настройки виртуального хоста апача, а также логи nginx и apache, касающиеся таких обращений? В приложении явно используется порт 81?

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

blade_007
ст. прапорщик
Сообщения: 571
Зарегистрирован: 2010-03-12 12:59:08
Контактная информация:

Re: Apache22 + Nginx

Непрочитанное сообщение blade_007 » 2011-12-20 23:20:48

В настройках nginx попробуйте заменить:

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

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

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

proxy_pass http://127.0.0.1:81;