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

Не работает редирект nginx

 


0

3

Приветствую, коллеги!

Мои пляски с бубном вокруг веб-серверов продолжаются.Ситуация следующая:

  • на границе с Интернетом стоит nginx, который перекидывает запросы на внутренние веб-сервера.
  • на один из внутренних апачей редирект не срабатывает.

Конфигурация на nginx:

# cat /etc/nginx/sites-available/mediawiki.conf
server
{
        listen 443;
        ssl on;
        ssl_certificate /etc/nginx/ssl/nginx.crt;
        ssl_certificate_key /etc/nginx/ssl/nginx.key;

        server_name mediawiki.XXX.com;
        location / {
                proxy_pass http://192.168.254.112;
                proxy_set_header        Host $host;
                proxy_set_header        X-Real-IP $remote_addr;
                #proxy_set_header       X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        X-Forwarded-For $remote_addr;
                #proxy_set_header        X-Forwarded-Proto $scheme;
        }
}

Соответственно, 192.168.254.112 - внутренний адрес апача, на котором стоит редирект на подпапку с mediawiki с помощью RedirectMatch.

При обращении к сайту по имени из интернета, nginx редирект не выполняет, говорит 404, а в логах ошибка:

2015/12/14 15:14:39 [error] 29122#0: *56 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: X.X.X.X, server: mediawiki.XXX.com, request: "GET /favicon.ico HTTP/1.1", host: "mediawiki.XXX.com"
Подскажите, кто знает, где искать ошибку? :-(

апача, на котором стоит редирект на подпапку с mediawiki с помощью RedirectMatch.

так нужно конфиг апача, nginx у тебя просто проксирует, редирект именно апач отдает

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

Так собственно редирект производится через хтаксесс, который лежит в /var/www/html, а там всего одна строчка
RedirectMatch «^/$» «/mediawiki/»

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

А что при запросе пишется в логах апача?
Кстати, у меня есть подозрение, что ты мог не подключить конфиг nginx в sites-enabled из sites-available, потому что та ошибка, которую ты привел, из той секции server, которая у тебя, появляться не может.

Prius ()
Последнее исправление: Prius (всего исправлений: 1 )
Ответ на: комментарий от Prius
# ls /etc/nginx/sites-enabled/
gitlab.conf     mon.conf        pwm.conf      seafile.conf  svn.conf   zimbra.conf
mediawiki.conf  observium.conf  redmine.conf  status        wiki.conf


 ls /etc/nginx/sites-available/
default      mediawiki.conf  observium.conf  redmine.conf  status    wiki.conf
gitlab.conf  mon.conf        pwm.conf        seafile.conf  svn.conf  zimbra.conf

Да вроде включена конфигурация. Для этого есть отдельная команда, кроме просто копирования файла конфигурации?

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

копировать только не надо. для этого есть симлинки из sites-available в sites-enabled. потом сам запутаешься, где правки вносил и почему не работает.

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

Теперь понял.

В error логе апача только сообщения о перезапусках сервера.
В access логе апача сообщений об успешном соединении не появляется.

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

копировать только не надо. для этого есть симлинки из sites-available в sites-enabled.

А на обработку конфигов сервером это влияет?

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

нет, не влияет. говорю же, путаница возникнет, рано или поздно.

но 99 из 100, что проблема в апаче, а не в nginx'e. добавляй уровней логгирования в апач и смотри в access.log

SevikL ★★★★★ ()
Ответ на: комментарий от alexnorton

После долгих издевательств над тестовой машиной выяснил, что на оригинальной у меня в hosts прописан внутренний адрес с привязкой зачем-то к внешнему имени. Удалил - и проксирование заработало.Уф. Всем спасибо за участие.

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