Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 14.08.2009, 16:35   #11
Мне повезёт!
 
Аватар для Alexey
 
Регистрация: 05.05.2007
Сообщений: 1,076
Вес репутации: 276
Alexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущее
По умолчанию

Делаю последние поректы на Django, там все урлы - ЧПУ, других нема)
__________________
Everything will be great in the end.
If it's not great, it's not the end.
Alexey вне форума   Ответить с цитированием
Старый 14.08.2009, 16:40   #12
Эксперт
 
Регистрация: 05.03.2008
Сообщений: 1,095
Вес репутации: 249
boric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Alexey Посмотреть сообщение
Делаю последние поректы на Django, там все урлы - ЧПУ, других нема)
Я тоже на джанго сейчас клепаю. Поисковики сжирают сайты с огромной жадностью.

ЗЫ:
А вы на этих сайтах (которые на базе джанго) сапу используете?
boric вне форума   Ответить с цитированием
Старый 14.08.2009, 17:08   #13
Мне повезёт!
 
Аватар для Alexey
 
Регистрация: 05.05.2007
Сообщений: 1,076
Вес репутации: 276
Alexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущее
По умолчанию

Цитата:
Сообщение от boric Посмотреть сообщение
ЗЫ:
А вы на этих сайтах (которые на базе джанго) сапу используете?
Нет, эти идут под заказ, за них платят неплохие деньги за разработку и поддержку.

Добавлено через 10 минут
Вообще почему я заговорил про Джанго...

ИМХО проблема ЧПУ - это проблема, созданная авторами PHP.

Поясню, почему я так считаю:

Разработчик ленив. Он использует GET параметры не потому что это единственный способ передачи параметров, а потому, что это единственный простой способ их передачи.

В самом деле: $a = $_GET['a'] - что может быть проще?

Отсюда всегда огромный соблазн использовать этот механизм всюду.

Но не только из-за лени. Ведь собственный парсер URL - это время, причем при грамотном подходе обеспечение хорошими ЧПУ полностью всего сайта - это достаточно большие затраты времени. А время - деньги. И зачастую от этой фичи отказываются в виду ее экономической нецелесообразности. И заказчиков можно в этом понять, особенно в "кризисные" времена.

Возвращаясь к теме Django скажу, что ИМХО проблема с ЧПУ в PHP будет до тех пор, пока в самом PHP не выработается устойчивого механизма работы с ними. Причем универсального механизма, а не Zend Framework, который, конечно, популярен, но не настолько, чтобы быть панацеей.
__________________
Everything will be great in the end.
If it's not great, it's not the end.

Последний раз редактировалось Alexey; 14.08.2009 в 17:08. Причина: Добавлено сообщение
Alexey вне форума   Ответить с цитированием
Старый 16.08.2009, 18:26   #14
Новичок
 
Аватар для Manfred
 
Регистрация: 08.05.2009
Сообщений: 30
Вес репутации: 183
Manfred на пути к лучшему
По умолчанию

Как я понял, forcetype для большинства редок в употреблении. Модреврайт я знаю достаточно чтобы делать ЧПУ, но в моём случае я не просто так хочу использовать ForceType. Возвращаясь к моему вопросу:
Не могу полностью понять как лучше влить форстайп. Я прописал в хтаксесс нужные команды, создал нужный файл без расширения в корне (например news), закинул в него строчки вынимающие требующий url. Теперь при обращении к site.ru/news он распечатывает $_SERVER['REQUEST_URI'];
Это хорошо, значит можно двигаться дальше.
Вот насчёт дальше у меня и есть вопрос. У меня есть путь site.ru/folder/news/index.php?article=1
при обращении к site.ru/news он схватывает $_SERVER['REQUEST_URI'];
как я понял смысл. Пишем php в безымянном news что-то вроде:
if ($_SERVER['REQUEST_URI']=='news/1){
echo file_get_contents("http://site.ru/folder/news/index.php?article=1");}

и т.д. только более умными и короткими конструкциями. Правильно ли я выбрал метод, или всё слишком усложнил и сделал всё неграмотно?
Manfred вне форума   Ответить с цитированием
Старый 16.08.2009, 20:04   #15
Эксперт
 
Аватар для seocore
 
Регистрация: 18.06.2007
Адрес: Картофель
Сообщений: 2,417
Вес репутации: 356
seocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущее
По умолчанию

Цитата:
Сообщение от maksim7 Посмотреть сообщение
Manfred, Даже гоша мне по слову форстайпы не выдал ни одного результата.
Что это такое?
Все тру юзают модуль mod rewrite от Апача, или как сказал уважаемый Йода,
я юзаю rewrite в nginx к примеру, mod_rewrite штука хорошая, но минусы Apache перевешивают все плюсы, такие как mod_rewrite, mod_php и т.п.

а вообще правильно сказали - самое простое - это реализовать некую матрицу паттернов (для регэкспов) в стиле WordPress'овского ЧПУ, т.е. это более универсальное решение, и наиболее уникальными получаются сателлиты и т.п., т.е. пожно подстроить ЧПУ под конкретные цели...

а разбирать $_SERVER['REQUEST_URI'] не так то уж и сложно при помощи тех же регулярных выражений и заранее подготовленных паттернов, т.е. реализовать тот же редактор паттернов в админке CMS - делов-то ну максимум на полчаса
seocore вне форума   Ответить с цитированием
Старый 17.08.2009, 11:10   #16
Новичок
 
Аватар для Manfred
 
Регистрация: 08.05.2009
Сообщений: 30
Вес репутации: 183
Manfred на пути к лучшему
По умолчанию

Цитата:
Сообщение от seocore Посмотреть сообщение
---
Ф..! Ваш аватар у меня аппетит отбил. До этого сидел читал форум и принимал пищу....

Цитата:
Сообщение от seocore Посмотреть сообщение

а разбирать $_SERVER['REQUEST_URI'] не так то уж и сложно при помощи тех же регулярных выражений и заранее подготовленных паттернов, т.е. реализовать тот же редактор паттернов в админке CMS - делов-то ну максимум на полчаса
А как вы открываете нужные физические страницы? Каким методом?
file_get_contents?
Manfred вне форума   Ответить с цитированием
Старый 17.08.2009, 12:40   #17
Эксперт
 
Аватар для seocore
 
Регистрация: 18.06.2007
Адрес: Картофель
Сообщений: 2,417
Вес репутации: 356
seocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Manfred Посмотреть сообщение
Ф..! Ваш аватар у меня аппетит отбил. До этого сидел читал форум и принимал пищу....
почти все мы Ж.К. на "картофельном поле Яндекса"

Цитата:
Сообщение от Manfred Посмотреть сообщение
А как вы открываете нужные физические страницы? Каким методом? file_get_contents?
вообще-то кеш у меня хранятся в eaccelerator_put/eaccelerator_get конструкции, т.е. в ОЗУ (с последнующим вытеснением на диск)... а оригинал контент выстраивается исходя из данных полученных из MySQL
seocore вне форума   Ответить с цитированием
Старый 17.08.2009, 12:47   #18
Мне повезёт!
 
Аватар для Alexey
 
Регистрация: 05.05.2007
Сообщений: 1,076
Вес репутации: 276
Alexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Manfred Посмотреть сообщение
Пишем php в безымянном news что-то вроде:
if ($_SERVER['REQUEST_URI']=='news/1){
echo file_get_contents("http://site.ru/folder/news/index.php?article=1");}

и т.д. только более умными и короткими конструкциями. Правильно ли я выбрал метод, или всё слишком усложнил и сделал всё неграмотно?
Такой метод сделает ваш сайт крайне не DDOS-о устойчивым, т.к. перед выводом контента он кэшируется вовнутрь пхп скрипта.

Плюс, это сведен на нет все прелести nginx (даже если вы его поставите), т.к. его специально ставят для избежания этого кэша, а тут оно будет бестолку.

Лучший по производительности вариант - это регэкспы и ручной вызов нужного обработчика. Но это сложно интегрировать в существующий движок.
__________________
Everything will be great in the end.
If it's not great, it's not the end.
Alexey вне форума   Ответить с цитированием
Старый 17.08.2009, 12:59   #19
Эксперт
 
Аватар для seocore
 
Регистрация: 18.06.2007
Адрес: Картофель
Сообщений: 2,417
Вес репутации: 356
seocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущееseocore - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Alexey Посмотреть сообщение
Такой метод сделает ваш сайт крайне не DDOS-о устойчивым, т.к. перед выводом контента он кэшируется вовнутрь пхп скрипта.
кхе, а сам apache вывод можно кешировать на уровне nginx'а, либо вообще через proxy_store, и пусть долбят хоть по тыщу GET / в секунду, это ничего не даст

Цитата:
Сообщение от Alexey Посмотреть сообщение
Плюс, это сведен на нет все прелести nginx (даже если вы его поставите), т.к. его специально ставят для избежания этого кэша, а тут оно будет бестолку.
если так подходить к вопросу, то лучше сделать отработку на уровне nginx + memcached, при отработке 404 ошибки, т.е. если в memcached'е нужного URI нет, то идет обращение на бэкэнд, где скрипт генерирует страничку и скаладывает в memcached с таймэлайвом в 5-10 секунд...

Цитата:
Сообщение от Alexey Посмотреть сообщение
Лучший по производительности вариант - это регэкспы и ручной вызов нужного обработчика. Но это сложно интегрировать в существующий движок.
правильно, лучше заранее заданный паттерн + отработка рэгеэкспами, также как это сделано в WordPress'е...

а сам динамичный контент лучше кешировать при помощи memcached/eaccelerator/xcache/apc механизмов и складировать в ОЗУ, т.е. можно свести практически на 0 количество запросов к MySQL, что в разы увеличит производительность и DDoS'устойчивость
seocore вне форума   Ответить с цитированием
Старый 17.08.2009, 13:12   #20
Мне повезёт!
 
Аватар для Alexey
 
Регистрация: 05.05.2007
Сообщений: 1,076
Вес репутации: 276
Alexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущееAlexey - прекрасное будущее
По умолчанию

seocore, я, верно, не слишом ясно выразился, не объяснив, почему я считаю, что это сделает сайт не DDOS-о устойчивым.

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

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

P.S: при таком подходе так же потеряются куки, REMOTE_ADDR и куча других полезных вещей, так что даже если там с производительностью будет и хорошо, то работать это все равно будет криво.
__________________
Everything will be great in the end.
If it's not great, it's not the end.
Alexey вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Биллинг делает меня богаче! replicant Ошибки при работе с системой 95 06.03.2009 17:29
Легитимное увеличение ТИЦ, кто-ниудь делает? ozz Деловое сотрудничество 24 13.01.2009 19:55
Что делает links.db Walk Вопросы от новичков 8 04.09.2008 09:50
Кто и зачем делает такие топики? imcl Курилка 25 23.05.2008 19:51
Что делает кнопка [обновить тИЦ и PR] ? new Вопросы по работе системы 2 16.01.2008 11:04


Часовой пояс GMT +3, время: 17:50.