The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"nginx(front-end) + apache (back-end) + .htaccess AddType. Help!"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (nginx)
Изначальное сообщение [ Отслеживать ]

"nginx(front-end) + apache (back-end) + .htaccess AddType. Help!"  +/
Сообщение от MaximSEO (ok) on 20-Авг-12, 14:35 
Поставил apache как бекенд, nginx как фронтенд для отлавливания статического контента. В nginx.conf:

        # Статическиое наполнение отдает сам nginx
        # back-end этим заниматься не должен
        location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|html|txt|mp3|wav)$ {
            root /var/www/html;
        }

        # Перенаправление на back-end
        location / {
            proxy_pass http://127.0.0.1:8080/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }


Но вот беда, если в .htaccess сайта прописать
AddType application/x-httpd-php .htm .html

Скрипт как php перестаёт обрабатываться, ибо его "кушает" nginx и он "не доходит" до апача.
ВОПРОС: как заставить nginx отдать html (прописанный в .htaccess как php) файл апачу ТАК, чтоб статические html файлы на других хостах продолжали обрабатываться nginx-ом (т.е. просто тупо убрать html с location нельзя)?
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "nginx(front-end) + apache (back-end) + .htaccess AddType. Help!"  +/
Сообщение от parad (ok) on 20-Авг-12, 17:25 
ну это неправильно расширение html для всего гонять.
попробуй переименуй пхп файлы с расширением пхп, а в конфиг добавь что-то типо такого:

  location ~ \.php$
  {
    ...
  }

  location /
  {
    if( ! -e $request_filename )
    {
      rewrite ^(.+)$ $1.php last;
      break;
    }
  }


так и расширение сохранишь и сам будешь в курсе где у тебя пхп.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "nginx(front-end) + apache (back-end) + .htaccess AddType. Help!"  +/
Сообщение от PavelR (??) on 20-Авг-12, 22:22 
>[оверквотинг удален]
>   {
>     if( ! -e $request_filename )
>     {
>       rewrite ^(.+)$ $1.php last;
>       break;
>     }
>   }
>
> так и расширение сохранишь и сам будешь в курсе где у тебя
> пхп.

не надо советовать бред. Бредом является:
- перенаправление всего и вся не найденного в пхп.
- location / , когда по-факту надо location ~ \.html$
- использование if вместо try_files.
- работа указанного rewrite неоднозначно объясняется в вашем совете.

- надо учесть, что файл есть, отдается как статика, хотя кому-то хочется прогнать его через пых-интерпретатор. Лучше всего убрать расширение html из списка статических, и не морочить голову. Либо переименовывать их в .php и менять ссылки. Переименовывать, но не менять ссылки (использовать костыль в конфиге) - я думаю это несколько глупо.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "nginx(front-end) + apache (back-end) + .htaccess AddType. Help!"  +/
Сообщение от parad (ok) on 21-Авг-12, 11:31 
ну ты фразу что-то типо такого не путай с жопой. это карсет, над которым еще стоит подумать. по поводу location ~\.html$ - не решит отдачу uploaded.html/some.jpg - у ряда движков практикуется. с одним пунктом соглашусь - try_files. про расширения и так сказал.
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "nginx(front-end) + apache (back-end) + .htaccess AddType. Help!"  +/
Сообщение от Andrey Mitrofanov on 22-Авг-12, 09:48 
> ВОПРОС: как заставить nginx отдать html (прописанный в .htaccess как php) файл
> апачу ТАК, чтоб статические html файлы на других хостах продолжали обрабатываться
> nginx-ом (т.е. просто тупо убрать html с location нельзя)?

Ответ1: nginx .htaccess-ов не умеет.

Ответ2: Напр., положить все html, которые на самом  - php, в _другой_ путь/дерево. Заодно хоть jpg, хоть wmv могут быть пыхом на самом. То есть: .../www/site.com/php/path/to/page1.html против .../www/site.com/path/to/page1.html будут обе в web-е www.site.com/path/to/page1.html , но на стороне сервера их обрабатываешь по-разному.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру