{imgicourl}{zamok}
<< предыдущая заметкаследующая заметка >>
08 февраля 2012
пару технических слов про блог

Может вы заметили, но со времен ухода с Зенона мой дневник периодически вис и не открывался. Он не прижился в Канаде, с трудом устроился в Германии. Когда шла серьезная нагрузка на сервер (типа ссылки из Твиттера Навального) — сервер ложился. Причин оказалось несколько, одна (не основная) была связана с моей ошибкой программирования, остальные — с настройками. Вот уже больше месяца в дневнике нет сбоев. Спасибо Русинову и всем остальным, кто помог справиться с бедой. Рассказываю, может, кому интересно будет.

1. Удивительно, но вопреки распространенному мнению, Apache — штука дурная. Он вообще не держит серьезную нагрузку и не способен обеспечить безотказную работоспособность для сильно посещаемого сервера. Для мелочи — пожалуйста, но если у вас идет по 200-500 запросов в секунду — сервер ляжет. Чтобы разгрузить Апач, перед ним ставится nginx. Nginx — это такой Apache отечественной разработки, он может работать и сам по себе, но в связке они наиболее эффективны.

2. Удивительно устроен язык PHP. Он — компилятор. Компилирует текст программы, а затем исполняет полученный код. Спасибо, что не интерпретатор — тогда ему пришлось бы все циклы разбирать сотни раз подряд. Проблема в том, что компиляция текста в код — занятие сложное, но выдав результат посетителю, PHP все забывает до следующего раза, чтобы снова начать с нуля. Это феерия тупости. Поэтому применяются разные штуки, которые сохраняют код в памяти, не давая PHP его компилировать всякий раз заново. У меня сейчас используется, как вы могли заметить иконку в левой колонке, phpexpress от Дмитрия Дмитриенко (с которым мы познакомились на митинге на пр.Сахарова). Устанавливается он просто — скачивается с сайта, кидается к себе 1 файл библиотеки (есть бинарник под все возможные системы) в папку, и в конфиге апача прописывается. В памяти phpexpress занимает всего 8мб под свои нужды — и этого по уверению Дмитрия с лихвой хватает, чтобы кэшировать коды php любых объемов (все-таки скомпилированный код — это не текст скрипта). А выигрыш производительности до 300% (!).

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

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий
Windows Firefox
 Los Angeles
2
0
Иван
А можно я проверю, перестал ли я быть анонимусом или нет?
И еще раньше у меня был замочек, а теперь пропал -- тоже глюк или меня вычеркнули из списка имеющих право на подзамок?

/ Иван
Linux Firefox
 Los Angeles
0
0
Leonid Kaganov
Подзамки, сколько раз говорить: логиньтесь и запоминайте пароль! Если не помогло - пишите коммент мне в любой заметке, кто вы. Я ж ничего не могу сделать, если ваш браузер в очередной раз сбросит куки.

Впрочем, это и моя вина тоже: надо сделать грамотный логин/разлогин на видном месте.

PS: Другое дело, что в подзамках у меня ничего нет интересного - просто некоторые посты появляются раньше дня официальной публикации.
Windows Firefox
 Los Angeles
2
0
taskmgr
Мало того, что что разлогина нет, еще и после стирания кук можно залогиниться только в первый момент. Обновил страничку - обломись. Стал анонимаусом :-)
Linux Firefox
 Los Angeles
0
0
Leonid Kaganov
Стирание кук вообще не мера для движка. И в будущем будет только хуже.
Windows Opera
 Los Angeles
1
0
Д'Артаньян
А у меня совсем странно. Был ник "kontra", меня всегда узнавали, все было хорошо, я цвел и пах. А в какой-то момент сайт меня узнал как "ДАртаньяна". И как теперь жить?
Windows IE
1
0
D.iK.iJ
Хоть пол принудительно не поменял...
Windows Firefox
 Los Angeles
1
0
taskmgr
А что не в техническом блоге? Он жив, просто спит?
Linux Firefox
 Los Angeles
1
0
Leonid Kaganov
Наверно я зря это не подчеркнул, но в данном случае мне интересно услышать, наблюдались ли проблемы с доступом на сайт за последний месяц.

По моим предположениям после исправления ошибки в движке (связанной с автоматическим запросом контента о наличии книжек с read.ru в те моменты, когда ОН висит), установки Володькой nginx и накатыванием pxpexpress сайт должен стать безотказным абсолютно.
Windows Safari Chrome
 Los Angeles
0
0
ElDog
А на зеноне проблемы с апачем и php почему не вылезали? Сервера мощнее или нагрузка меньше?
Linux Firefox
 Los Angeles
1
0
Leonid Kaganov
А на Зеноне всегда был nginx. Кроме того сервер на Зеноне был достаточно сильный и обособленный, на нем сидели физически, насколько я слышал, только lleo.aha.ru, mult.ru, pelevin.nov.ru, ну и собственно сам aha.ru, который просто заглушка.

Вот насчет phpexpress не знаю, скорее всего ни его, ни его аналогов на Зеноне не было. Но может сейчас появится - там Беркович рулит, он большой ценитель pxpexpress, и они с Дмитриенко друзья.

Кстати, на binoniq.net (а он и ныне хостится на Зеноне, кто не в курсе) Беркович поставил и nginx и phpexpress тоже.

Впрочем, мне и на Зеноне удавалось достичь застревания сервера - когда я несколько лет назад экспериментировал со скриптами-мессенджерами, показывающими, сколько посетителей читают сейчас заметку, и даже позволяющими обмениваться сообщениями друг с дружкой. При обращениях аяксом раз в 5-15 секунд и при наличии от 200 одновременных посетителей сервер офигительно проседал.

Помнится, я долго удивлялся и спрашивал у друзей, как же сделано это во всех остальных соцсетях, чтобы сообщения падали в реальном времени на страницу пользователю. Оказалось - никто в мире не заставляет браузер посетителя пинговать сервер каждые 5 секунд, каким бы мощным он ни был. А возможностей отправить произвольному браузеру информацию в произвольный момент по инициативе сервера - не предусмотрено в протоколе вообще, как известно.
Linux Firefox
 Los Angeles
5
0
Igel (#1244562)
здесь возможны варианты в виде websockets или http long polling. главное обрабатывать чатик асинхронным сервером (например чем-то подцепленным к nginx), а то процессы апача не резиновое.

и общее количество соединений не резиновое.
Linux Firefox
 Los Angeles
2
3
Leonid Kaganov
Вы вообще понимаете, о чем говорите? http long polling - это вечно открытое соединение? Ага, ага. Для одного единственного клиента, зашедшего в одну корпоративную админку - самое оно.
Linux Safari Chrome
 Los Angeles
7
1
anonymouse (#1278739)
вечно открытое, да. и ничего в этом страшного нет.

вы же не удивляетесь, что сервера всяких джаберров и irc держат тыщи этих соединений.
Linux Firefox
 Los Angeles
0
8
Leonid Kaganov
Ну и сколько одновременных соединений, по-вашему, готов держать виртуальный сервер средней мощности?
Linux Safari Chrome
 Los Angeles
13
0
anonymouse (#1278739)
средней мощности - это сколько ватт?

держать молча висящие соединения - вообще ничего не стоит, кроме места в памяти в таблице соединений в ядре и в коде приложения.

если конечно писать жопой и форкать на каждое висящее соединение по потоку, которые ходят в общую память и весело синхронизируются мутексами - то конечно, больше одного не выдержит.
Linux Firefox
 Los Angeles
2
3
Leonid Kaganov
Сколько ватт в памяти будут занимать 500 открытых соединений? А вот как писать - я не знаю. Я на PHP пишу, и как вести работу с открытыми соединениями мне совсем не понятно. Допустим, мне надо отправить сигнал всем висящим пользователям. Как его отправлю? И как они его примут через JS? Большая загадка. Одно лишь утешает: мне она пока СОВСЕМ не нужна и в обозримом будущем не понадобится никак :)
Linux Firefox
 Los Angeles
6
0
Igel (#1244562)
замечательно примут через родимый long polling если не отвалились.

Это задача не для связки apache+mod_php, потому что такая система вынуждена держать целый процесс на каждого слушателя == дохрена памяти.

Для таких задач лучше подходит связка nginx+tornado(веб-сервер для питоньих программ) и все клиенты обрабатываются одним-двумя процессами tornado. (более предсказуемое и не очень большое количество отжираемой памяти).
При такой схеме одно молчащее соединение жрет буквально 16-128кб внутри операционки + в торнадо от десятка килобайт до полумегабайта, в зависимости от того, сколько знаний про клиента нам нужно держать.

Не обязательно использовать торнадо и питон, есть и другие хорошие варианты, но общая идея такая же.
Linux Safari Chrome
 Los Angeles
6
0
hulovrat (#1075219)
ещё немного, и Лео откроет для себя nginx с другой стороны...

http://ru.wikipedia.org/wiki/Проблема_10000_соединений
Linux Firefox
 Los Angeles
2
0
Leonid Kaganov
Да, честно говоря, у меня и нет таких задач - держать открытые соединения и устраивать онлайн-чаты. Это были просто эксперименты, которые не показались интересными, даже если бы сервер держал. Ну вот зачем вам в моем блоге может понадобиться постоянное соединение? Видеть, что соседнюю заметку в данную секунду читают семь анонимусов? Или созерцать трепыхание иконки, сообщающей, что некто прямо в данную секунду начал набирать новый комментарий и набрал уже 123 буквы? ;)
Linux Safari Chrome
 Los Angeles
4
0
hulovrat (#1075219)
да мне-то тем более незачем. вам просто указали, что проблемы держать открытыми тысячи соединений, которая вас так удивила, в общем-то нет. армянское радио спросили - оно ответило.
Linux Firefox
 Los Angeles
1
0
Leonid Kaganov
Да, спасибо, это я буду иметь в виду. Хотя у меня все равно есть резонные сомнения по нагрузке на сервер и ресурсам.
Linux Firefox
 Los Angeles
0
0
Igel (#1244562)
яндекс-метрика кстати такую статистику собирать умеет =)
просто потому что это прикольно.

PS что-то подтверждение почты упорно не приходит. пичалька. =(
Linux Safari Chrome
 Los Angeles
1
0
Соziдатель
Есть специальные сервера для сотен тысяч постоянно открытых соединений. Мы, например, сейчас пробуем этот:
http://dklab.ru/lib/dklab_realplexor/
Windows IE
 Los Angeles
6
3
Вы забыли подписаться (#1018922)
Картина маслом. Писатель Леонид Каганов познаёт тайны работы highload-серверов. =)
Я вот не одмин, не программист, и не писатель. Просто однажды мимоходом почитал про то, как типовое современное вебсерверное хозяйство работает, и как-то даже противненько стало. Нет в жизни щасья. Костыль на костыле и костылём.
И кстати, удивительно, куда смотрят ыкологи, ведь из-за всех этих апачей да пхп столько электричества тратится. А это же выбросы углекислого газа (сокращённо УГ) в атмосферу, потребность в атомной "сцуко_апасной" энергии, и прочие нехорошие вещи... Где митинги, забастовки? Где переходящий приз "самый экономичный сайт?". Моя негодуэ!
Windows Firefox
 Los Angeles
7
0
anonymouse (#1645251)
Сколько кислорода сжег твой комент?
Linux Firefox
 Los Angeles
6
1
Leonid Kaganov
Дышите глубже - вы сжигаете!
Windows Firefox
 Los Angeles
0
1
vinny-the-poo
розжигаете же!
Windows Firefox
 Los Angeles
6
1
Келаврик (#472615)
Углекислый газ это парниковый газ. А нам сейчас холодно.
Linux Ubuntu Firefox
 Los Angeles
9
0
Константин
Осталось неясным, зачем тогда вообще вам нужен апач. Nginx может самостоятельно общаться с php. Ключевые слова для поиска - Nginx php-fpm
Linux Firefox
 Los Angeles
0
0
Leonid Kaganov
Мне тоже не очень ясно, но сам я никогда не занимался настройкой ни Апача, ни nginx. А друзья, которые мне в этом помогали, говорят, что лучше так.
Linux Ubuntu Safari Chrome
 Los Angeles
3
0
Семён Дубина (sam002d)
Такая связка была лучше пару лет назад. Сейчас nginx абсолютно самостоятелен. Где-то с год назад Игорь Сысоев (разраб) объявил его стабильным. Особенно радует, что подавляющая часть документации на русском)) Настраивать nginx в разы легче и интуитивнее, чем apache, но надо понимать и концепцию. Если апач - это слон в одном и сбоку бантик, то у энджинкса ограниченный круг задач. Сейчас часто используется связка nginx+php-fpm+*ваша_любимая_CMS*. Поднимал такое для WP - остался доволен. Сделаю тест производительности - кину.
Linux Firefox
 Los Angeles
2
3
Leonid Kaganov
К сожалению, я не админ и не умею сам настраивать сервера. Мне нужно PHP+MySQL+memcache.
Windows Opera
 Los Angeles
4
3
anonymouse (#1649555)
Как же ты собираешься писать PHP-код для highload-движка, не представляя, как работает PHP?! Не имея понятия об оп-код кэшерах?
Linux Firefox
 Los Angeles
3
2
Leonid Kaganov
А я не собираюсь. Я уже давно всё написал.
FreeBSD Firefox
 Los Angeles
0
0
anonymouse (#1651887)
У меня под фрей как-то php-fpm очень мощно повис, аж систему на старте заклинил. Пришлось от родного отказаться и поставить обратно spawn-fcgi
Windows Firefox
 Los Angeles
1
0
mad
На тему новости про озеро Восток: в Русском Репортере недавно вышла хорошая статья http://rusrep.ru/article/2012/01/25/ozero/
Linux Firefox
 Los Angeles
3
1
Leonid Kaganov
Да, я уже порадовался и давал ссылку в блоке ссылок. Редкая позитивная новость на фоне нашей унылой действительности.
Mac Safari Chrome
 Los Angeles
2
0
anonymouse (#1465446)
да кеш опта кода, большевики обещали в 6ке.
интересно что сравниние PhpExpress с более распрастранными кешерами типа apc/eaccelerator/xcache не гуглится
Linux Safari Chrome
 Los Angeles
0
0
hulovrat (#1075219)
Впервые прочёл про phpexpress тут у Лео. Надо ознакомиться с отечественным творчеством.

Кстати, eaccelerator, начавший свою жизнь как Turck MMCache, тоже изначально отечественный продукт, но заточенный с самого начала на зарубежную аудиторию.
Linux Safari Chrome
 Los Angeles
1
0
hulovrat (#1075219)
phpexpress оказался котом в мешке - binary-only поделкой неизвестного качества. Помнится, 10 лет назад с этого начинал ionCube, но потом загнулся, не выдержав конкуренции с open-source PHP-акселераторами (что вполне естественно).
Linux Firefox
 Los Angeles
0
0
Leonid Kaganov
Вы так это произносите, будто обнаружили минусы в работе. Можно подумать, у вас есть исходники для всех программ от операционки и драйверов до Скайпа, и Firefox с Оперой и Хромом вы тоже сами собирали.
Linux Safari Chrome
 Los Angeles
0
0
hulovrat (#1075219)
нет, до работы дело не дошло. минусы косвенные - из описания ясно, что упор в phpexpress делается на поддержку закодированных с помощью другого продукта той же фирмы PHP скриптов, а уж акселерация там как полезный побочный эффект (кстати, абсолютно так же было в ionCube).

впрочем, может оно и действительно чудесно работает. но я бы побоялся ставить на рабочий сервер - всё-таки в Linux/FreeBSD хостинге принято использовать продукты с доступным исходным кодом. странно было бы предпочесть нечто бинарное (а значит, априори неизвестного качества), когда есть столько гораздо более известных и гарантированно хорошо работающих альтернатив с исходным кодом, в т.ч. и от разработчиков PHP (APC).

p.s. кстати, исходники от моей операционки и большинства упомянутых программ (кроме Скайпа и Оперы) действительно доступны любому желающему.
Linux Firefox
 Los Angeles
0
0
Leonid Kaganov
Зато человек прекраснейший! У него прямо на лице написана честность, скромность и профессионализм. Кстати, коллега автора nginx.
Linux Safari Chrome
 Los Angeles
0
0
hulovrat (#1075219)
боюсь, уже не коллега - автор nginx ушёл в свободное плавание ещё в прошлом году.

честно решил попробовать сравнить phpexpress, но оказалось, что оно не умеет кешировать скрипты, когда PHP работает в режиме FastCGI, что в общем-то намекает.
Linux Firefox
 Los Angeles
5
0
Oreolek
В связке apache+nginx апач - лишний :-)
Linux Opera
 Los Angeles
0
0
dinozavr
Меня опять определяет как анонимуса.
Linux Opera
 Los Angeles
0
0
dinozavr
даже после логина. Версия:
11.61
Сборка:
1250
Платформа:
Linux
Система:
x86_64, 3.0.0-15-generic
Идентификация браузера:

Opera/9.80 (X11; Linux x86_64; U; ru) Presto/2.10.229 Version/11.61
Linux Safari Chrome
 Los Angeles
0
1
Evgeny
> Вот уже больше месяца в дневнике нет сбоев
Не хочется вас расстраивать, но это не совсем так. Как случается политосрач на 500+ комментов, так начинается ад: то комменты не открываются, то не отправляются, то с хоткеями беда - глючат и мешают текст комментария набирать.
Linux Firefox
 Los Angeles
3
0
Leonid Kaganov
Ну конечно, как только растет на сервер нагрузка, так сразу начинают глючить горячие клавиши на джаваскрипте в вашем браузере.

"А еще от мяса ноги мерзнут!" (с) анекдот про лекцию в колхозе ;)
Linux Safari Chrome
 Los Angeles
8
1
anonymouse (#1278739)
>Ну конечно, как только растет на сервер нагрузка, так сразу начинают глючить горячие клавиши на джаваскрипте в вашем браузере.

а вы бы лучше разобрались - может при сильной нагрузке у вас статика не раздается и жаваскрипт не грузится с сервера вообще, поэтому хоткеи обрабатывать некому.
Linux Firefox
 Los Angeles
2
0
Leonid Kaganov
Ну конечно, окошки открываются, а вот набирать текст - мешает незагрузившаяся статика.

Не надо пожалуйста валить в одну кучу недоработки движка и глюки сильной нагрузки сервера.

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

Также для меня не секрет, что изредка в некоторых браузерах комментарий отправляется, но форма не закрывается, отчего появляются дубли. Тоже пока не знаю, отчего это.

Вообще что касается хоткеев - мне бы хотелось на JS сделать скрипт, который бы при загрузке проходил все формы типа input и встраивал в них событие, по которому хоткеи отрубаются, как только в форму переводят фокус и начинают что-то набирать. Единственная проблема - я пока не придумал, что это должно быть за событие такое. onfocus? вроде же нет такого. onkeypress? каждый раз срабатывать - глупо.
Windows Opera
 Los Angeles
0
0
Михайлов
Дубли (вернее, предпосылку к ним - незакрытое окно камента) наблюдал несколько раз при условии, что в браузере открыто несколько десятков страниц с Жж, и выдается сообщение о "нехватке виртуальной памяти, бла-бла". Вместо того, чтобы повторно нажать send, просто рефрешу страницу и уже вижу свой камент в треде. Да, такой же косяк не только на твоем сайте, параллельно так же плохо постить на fontanka.ru , например. Есть подозрение, что в этот момент лажает не только мой РС с браузером, но и сервера тоже просевши - фонтанка по этому поводу предупреждала несколько раз.
Да, лечится перезагрузкой.
Нет, в причинах не разбирался и не хочу, проще перезапустить, опера подымет все последние вкладки.

WinXP+SP3+все апдейты, Opera 11.61.
Linux Firefox
 Los Angeles
0
0
Leonid Kaganov
Я думаю, это что-то в протоколе Аякса рвется.
Windows Opera
 Los Angeles
0
0
Михайлов
А заодно, чтоб два раз не вставать - как "собрать воедино" все свои аккаунты из разных Михайловых? Анонирующей мышью мне быть не хотелось, поэтому всегда честно перелогинивался, и меня на сайте под одной фамилией уже с два десятка будет, в разных периодах, если поискать в именах по 'Михайлов' (Майсюк не в счёт)
Windows Opera
 Los Angeles
3
0
anonymouse (#1531231)
Событие onfocus есть.
Linux Opera
 Los Angeles
1
0
zera
есть onfocus и глюков особых с ним связанных не упомню
каждый раз не надо, достаточно в первый раз сработать
Linux Firefox
 Los Angeles
1
0
Leonid Kaganov
Спасибо, так и поступлю. Формы input и textarea обработать надо, насколько я понимаю. Не вопрос. У меня просто и так достаточно проблем с шорткеями в разных ситуациях, где input и textarea по разным причинам должны присутствовать в самой странице, а не открываются отдельным окном.
Linux Safari
 Los Angeles
0
0
anonymouse (#1218519)
Да, отруби, пожалуйста, хоткеи в момент набора текста. А то мой Гэлекси Таб Р-1000 прямо тупит, хотя начинка еще достаточно современная.
Linux Firefox
 Los Angeles
1
0
Leonid Kaganov
Кажется, удалось.
Linux Ubuntu Firefox
 Los Angeles
0
0
s0mni
Тем не менее, это происходит только для заметок с кучей комментариев. Для малокомментируемых постов я такого не замечал.
Linux Firefox
 Los Angeles
7
0
Leonid Kaganov
Логично предположить, что вы их мало комментировали ;)
Mac Safari
 Los Angeles
0
0
anonymouse (#1243370)
Кажется ни у кого уже не осталось мнения, что Апач может выдержать серьёзную нагрузку. Энжиникс — это «лайти» российского производства, а не Апач.
Linux Ubuntu Safari Chrome
 Los Angeles
1
0
kiev.ua@Дмитрий (kastaneda)
Леонид, Apache бывает очень разным, в зависимости от используемого MPM.
mod_php + Prefork это отстой.
php/FastCGI + mod_fcgid + Worker работает намного лучше.

Nginx прекрасен для отдачи статики и передачи вызова дальше (в FastCGI или другому веб-серверу). Если у вас ничего нет, кроме статических файлов и PHP, то вам попросту не нужна огромная махина Apache из десятков модулей.
Linux Firefox
 Los Angeles
0
1
Leonid Kaganov
У меня еще многочисленные .htaccess и mod_rewrite, кстати.
Windows Opera
 Los Angeles
4
0
anonymouse (#1649555)
Ой-йе... Только не говори, что у тебя на .htaccess и mod_rewrite завязана авторизация и безопасность движка!!!
Linux Firefox
 Los Angeles
1
1
Leonid Kaganov
У вас хорошо получается говорить за меня и тут же мне возражать, актерский талант ;) А что, аццкие хакеры уже научились взламывать .htaccess усилием воли? ;)
Windows Firefox
 Los Angeles
4
1
Маркони (#1461838)
Это даже не надо ломать, Ватсон, оно само отвалится (с) Шерлок Холмс
Linux Firefox
 Los Angeles
3
0
Leonid Kaganov
намудачи,намудачи,намудачипожелай
Windows Firefox
 Los Angeles
1
1
Маркони (#1461838)
А что, ни разу не отваливалось? Не верю! (с) Станиславский
Linux Firefox
 Los Angeles
1
0
Leonid Kaganov
Вы так это говорите, будто в этом есть что-то плохое (с)
Windows Firefox
 Los Angeles
0
0
Маркони (#1461838)
Хм, постоянно отваливающиеся предметы гардероба - это характеристика его хозяина, как есть то: несобранный, взбалмошный и использует периодически разваливающиеся ядра своих операционных систем в компьютерах, малонадёжный человек (с) Д.А. Медведев
Linux Firefox
 Los Angeles
2
1
Leonid Kaganov
Он вел досье на каждого мальчика из нашей палаты — в общей тетради, которую хранил в мешке с грязным бельем под защитой нескольких особо пахучих носков. Мне он ее доверительно показал, когда мы курили сырые ростовские сигареты в кустах возле столовой. Про меня там было написано следующее: Семен Левитан. Обладает умением говорить голосом загробного мира, отчего ночью делается страшно. (c)В.Пелевин
Windows Opera
 Los Angeles
2
2
anonymouse (#1649555)
+1

Кроме того, это делает твой движек наколеннй поделкой - потому что ни под что, кроме тормозного апача он не станет. Не говоря уже о том, что "прозрачный" синтаксис .htaccess и алгоритм работы с ним апача очень способствует неучтенным проблемам с безопасностью - "Ой! А откуда ЭТО на сайте взялось?!"

Заодно что бы не плодить посты, я тебе еще об одной технике расскажу. Нормальные кэшеры кроме кэширование опкода умеют еще кэшировать переменные - не знаю, умеет ли это phpexpress. Собственно, дальше кури мануалы.

Посмотрел. Судя по куцей документации - не умеет phpexpress кэшировать переменные. Ну, нормально. Наколеннаяя поделка, поддержанная наколенной поделкой.
Nokia-E90 Safari
 Los Angeles
1
2
myopenid.com@lleo dsdfsf (lleo)
Обоснованный пафос человека, сделавшего уроки!

О чем свистеж-то? У кого проблемы с безопасностью? Где? Какие еще "переменные" ты собрался кэшировать? Для этого мемкеш есть вообще-то. Где вас только понабрали, юных гордецов? :)))
Windows Opera
 Los Angeles
3
2
anonymouse (#1652192)
Обожемой! Сколько пафоса!

Я-то сделал своё домашнее задание, а ты, вообще-то, нет. Что ж, прочто тебе выдержку из моего конспекта. memcached, вообще-то - лишь один из способов кэширования данных, и, в частности, кэширования данных в памяти. Более того - из-за своей примитивности, он слабо пригоден без дополнительных подпорок, оберток и спецметодов.

Впрочем, ты уже отрекомендовался, как нелюбитель сторонних библиотек. Помнится, во времена своей молодости я уже насмотрелся на таких любителей писать ассемблерные вставки и читать файлы через int 13h там, где это не нужно. Поэтому заканчиваю метание бисера.
Linux Firefox
 Los Angeles
2
4
Leonid Kaganov
Как много слов, претензий и восклицательных знаков. И ноль конкретики. Почему я не удивлен? Сетевые гуру - такие сетевые гуру :)))
Windows Opera
 Los Angeles
0
2
anonymouse (#1653068)
Обожемой! (добавлю еще один восклицательный знак) Ты гуглем пользоваться не умеешь? Ты не читаешь документацию? Даже на русском есть уже доки по теме! Конкретики тебе? Легко.

Zend Cache. Единый интерфейс к различным быстрым методам кэширования (xCache, твой любимый memcached, APC, и, собственно, сам Zend) или медленным (файлы, SQLite). Двойная система доступа к переменным - по тэгу и по ИД - очень полезно для стирания ненужных данных по категориям. Ну и куча других разных приятностей. Зная твою нелюбовь к сторонним библиотекам, замечу, что Zend Cache - фактически часть языка PHP, вернее - один из модулей, которые мэйнтэйнят разработчики. При сравнимой задроченности синтаксиса вызовов Zend Cache по сравнению с PHP-интерфейсом к memcached, первый предоставляет гораздо больше возможностей в сочетании с гибкостью и подстройкой под окружение. А для любителей int13h - есть возможность обращаться к низкому уровню Zend в лоб - набор функций типа zend_XXX_cache_store и подобных.

Или тебе нужно весь движок переписать - и тогда для тебя будет "конкретика"?
Linux Safari Chrome
 Los Angeles
0
0
anonymouse (#1230489)
В nginx .htaccess не работает.

Если nginx отдает статику, он на него не смотрит.
Windows IE
 Los Angeles
1
0
bambr (#418829)
прикольно таперь я подзамочный анонимус, поправил вааще не узнають bambr
Windows Safari Chrome
 Los Angeles
0
0
Sodin (#1032022)
а меня теперь ещё и приветствует как анонимуса

Sodin
Windows Opera
 Los Angeles
1
0
Шура
Леня, насчет phpexpress - он же, я так понял, платный?
Linux Firefox
 Los Angeles
0
0
Leonid Kaganov
Вовсе нет. Просто он, насколько я понял, не в исходниках, а в бинарниках. Или просто я не нашел.
Windows Opera
 Los Angeles
0
0
Шура
Да, это Nu-coder у них платный.
Короче, на моих задачах прироста скорости не получилось :(
Ну, что ж тут сделаешь...
Linux Firefox
 Los Angeles
0
0
Leonid Kaganov
А почему не получилось? Либо у тебя не нагружен сервер, либо ты используешь какую-то автоматическую компиляцию с исполнением кода внутри PHP-скриптов?
Windows Opera
 Los Angeles
0
0
Шура
Ну, само собой, не нагружен. Это внутренний корпоративный сервак :) там моя самописная инфосистема крутится и все. Я засекал среднее время выполнения одного скрипта. Разница в пределах погрешности усреднения :( Скрипты, впрочем, у меня простенькие, основаня нагрузка на MySQL - запросов много. Грубо говоря, из 2,3 секунды общего времени выполнения 1,6 жрут запросы. Оставшиеся 0,7 секунды ускорить не удалось :)
Linux Safari Chrome
 Los Angeles
0
0
hulovrat (#1075219)
советую проконтролировать его работу с помощью phpexpress() - он вообще не кэширует PHP в режиме FastCGI. может, там и ещё какие подводные камни...
Windows Opera
 Los Angeles
2
0
Шура
А как nginx поставить поперек апача? че-то я пока не нагуглил... Или это долго объяснять? :) Если долго, не напрягайся. Поищу дальше.
Linux Firefox
 Los Angeles
0
0
Leonid Kaganov
Я не в курсе, не я ставил. Я не умею.
Windows Opera
 Los Angeles
0
0
Шура
Понятно.
Лень, а вот личную карточку поменять - это где? А то я 1992 года рождения числюсь... :) маоденький-маоденький :))
Linux Safari Chrome
 Los Angeles
3
0
kirushik
Запустить nginx на 80 порту и разрешить к нему доступ извне.
Запустить apache на каком-нибудь 8000 порту, и слушать только локалхост.

Для тех мест, где надо отдавать статику, apache не нужен. Пишем в конфиг nginx что-то типа

location /static {
root /var/www;
}

И о чудо, все файлы по урлам вроде отдаются, не напрягая apache.

Теперь надо передать всё ПХП на апач на порту 8000.

location /*.php {
proxy_pass http://localhost:8000;
}

И вот, теперь http://example.com/cms.php открывается через передачу вызова в apache.

Более подробно про проксирование nginx (там много тонкостей, если нужно аплоадить большие файлы, или узнавать IP-адрес из PHP) —http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#example
Linux Firefox
 Los Angeles
0
0
Leonid Kaganov
Истинно так!

Правда, у меня открылось два глюка. Во-первых, объем закачки методом POST ограничился до 1Mb (а я в движок фотки лью кучей, и он их обжимает). Во-вторых, движок теперь видел адрес запроса как lleo.me:81, а он не был готов к такому. Лимит увеличил Володька, который, собственно, и настраивал. А выкусывание порта из адреса я убрал сам в коде движка, надеюсь никому другому это не повредит.
Linux Ubuntu Safari Chrome
 Los Angeles
3
0
Семён Дубина (sam002d)
Леонид... Это уже походит на тролиг! Понимаю, что лениво и мало времени, но открой уже свой любимый редактор и посмотри содержимое /etc/nginx/nginx.conf /etc/php5/fpm/php.ini. Уже смешно читать про "я же не умею, мне же не надо, я же не одмин, мопед же не мой". До этого момента не интересовался, но постараюсь в ближайшие пару месяцев посмотреть твой движок. И всем комментаторам предлагаю взять себя за\b\b\b в руки и допилить Каганову блог, чтобы не читать про apach после nginx-а))
Windows Opera
 Los Angeles
1
1
anonymouse (#1653068)
Типа, у других нет своих личных проектов в нерабочее время, что бы помогать криворуким доделывать наколенный движок?! Про рабочее время я даже не заикаюсь - там всегда есть, чем занятся.
Nokia-E90 Safari
 Los Angeles
5
1
myopenid.com@lleo dsdfsf (lleo)
Зато у них всегда найдется время громко петь в комментариях, как они ни за что не станут делать то, что у них никто и не просил :)))
Windows Opera
 Los Angeles
0
0
Шура
Спасибо. Буду разбираться :)
Windows Opera
 Los Angeles
0
0
Шура
А, нет, пардон. Ошибся.
Linux Opera
 Los Angeles
10
0
bubbo (#1539722)
Анонимус, да и похуй.
Отчет:
1. Каждый день читаю дневник и комментарии.
2. Ни разу ничего не висло. Все открывается.
3. Аффтар пиши ищщо.
Windows Firefox
 Los Angeles
4
0
Маркони (#1461838)
Люто, бешено плюсую! +100500!!!
Windows Firefox
 Los Angeles
0
0
Dmitry X (#1526576)
Модуль авторизации отвалился, что ли?

realname: Dmitry X
login: dimcheg
Linux Firefox
 Los Angeles
0
0
Leonid Kaganov
А вот я не вижу заполненного поля login/password, если кликнуть на карточку. Password - есть, а login - пуст. И (второй вариант) пройденной регистрации с заполненным полем openid тоже не наблюдается.

А realname и имя, вписанное в сам комментарий, движок сейчас игнорирует, считая таких пользователей не авторизованными.
Windows Firefox
 Los Angeles
0
0
Dmitry X (#1526576)
Заполнил еще раз. Жму «Go». Не пускает.
Linux Firefox
 Los Angeles
0
0
Leonid Kaganov
Чего говорит?
Впрочем, наверно мне там саму форму менять надо, оан совсем старая, надо переделать.
Windows Firefox
 Los Angeles
0
0
Dmitry X (#1526576)
Некорректно выразился. Вроде бы как пускает, вроде бы как даже опознает (id=1526576), но в левой колонке сверху логин не меняется (по-прежнему anonymouse) и в отправленные сообщения не подставляется ни логин, ни realname.
Linux Firefox
 Los Angeles
0
0
Leonid Kaganov
Все понятно, но я не вижу, чтобы поле login записалось в базу. Разбираться, почему, - лень. Надо все там менять.
Windows Opera
 Los Angeles
2
0
Михайлов
И станет меня там ещё на одного больше, я чувствую )
Linux
 Los Angeles
1
0
anonymouse (#1649519)
Тест комментария :-)
Sony (ЕМНИП Ericsson), какой там браузер эта штука использует.
Windows Firefox
 Los Angeles
2
0
Маркони (#1461838)
О да, анонирующих мышей поубавилось, теперь другие анонируют :)))
Маркони, если чо :)))
Windows Firefox
 Los Angeles
0
0
z2n5020f40
LLeo, умоляю (повторно!), верни материализатор! Сил же без него нет никаких!
Linux Firefox
 Los Angeles
0
0
Leonid Kaganov
Ох, это надо домен новый зарегистрировать, да в Канаду его... А лучше - хостинг в домене 3 уровня надыбать...

Или еще вариант - подождать, пока я переделаю движок Биноника (а заодно свой) под многопользовательский, и тогда материализатор в домене не будет представлять угрозы.
Linux Safari
 Los Angeles
0
0
anonymouse (#1218519)
Дожить бы. . .
Linux Ubuntu Firefox
 Los Angeles
2
0
anonymouse (#1298426)
nginx + php-fpm. Больше ничего не надо. :)
Windows Safari Chrome
 Los Angeles
0
0
Propir (#1241434)
Не, все равно анонимус(
Windows Firefox
 Los Angeles
1
0
Д'Артаньян (#1250956)
Анонимыш
Windows Firefox Opera
 Los Angeles
2
0
HZ
Толковый словарь:
"Анонимыш" (м.р., ед.ч.) - детёныш анонимуса, белый и пушистый, в отличие от взрослой особи.

HZ
Windows Safari Chrome
 Los Angeles
1
0
anonymouse (#1029811)
А у меня вот с некоторого времени перестал открываться дневник по адресу http://lleo.me/dnevnik
Работает исключительно вот так http://lleo.me/dnevnik/
Не то что бы напрягает, букмарки поменял, но недели две реально думал что у ллео дневник лежит
Linux Firefox
 Los Angeles
0
0
Igel (#1244562)
lleo, раз уж тут пьянка о стабильности движка
прикрути, пожалуйста, поддержку https://github.com/bobuk/7XX-rfc =)
Linux Firefox
 Los Angeles
0
0
Leonid Kaganov
Да, надо бы сделать поддержку...
FreeBSD Firefox
 Los Angeles
1
0
anonymouse (#1651887)
Уважаемый Lleo, nginx с php посредством fcgi совершенно замечательно работает без всякого апача. Возможно, с fcgi даже phpexpress не понадобится. Я выкинул апач года три назад, чего и вам желаю. :)
Windows IE
0
0
anonymouse (#1674065)
насчёт ускорения fastcgi - это только если много статики (картинки, css и js), и она не обрабатывается через php.

насчёт phpexpress+fastcgi - у меня прекрасно работает. Opcodes кешируются, и страница phpexpress() показывает статистику.

всего комментариев: 121

<< предыдущая заметка следующая заметка >>