Результаты поиска
Как настроить пагинацию (pagination) на сайте Codeigniter. Весь блок показывается на одной странице.
Весь блок новостей выводится на одной странице. Но кнопки пагинации правильно выводятся. Найдите ошибку в моём коде.
Мой контроллер:
В модели прописано следующее:
В view написано:
Лучший способ разрешить плагины для приложения PHP
Я запускаю новое веб-приложение в PHP, и на этот раз я хочу создать что-то, что люди могут расширить с помощью интерфейса плагина.
Как можно написать 'hooks' в свой код, чтобы Плагины могли прикрепляться к определенным событиям?
Как вы разветвляетесь и сливаетесь с TortoiseSVN?
Как вы ветвлений и слияний с Apache Subversion, используя клиент TortoiseSVN?
Как отслеживать загрузку файлов
У меня есть сайт, который играет MP3 в плеере flash. Если пользователь нажмет кнопку 'play', то flash плеер автоматически загрузит mp3 и начнет его воспроизведение.
Есть ли простой способ отслеживать, сколько раз был загружен конкретный клип песни (или любой двоичный файл)?
Является ли ссылка на игру ссылкой на фактическое mp3 файл или к некоторому javascript коду вот и выскакивает игрок?
Если последнее, вы можете легко добавить свой собственный код регистрации там, чтобы отслеживать количество попаданий в него.
Если первое, то вам что-то понадобится это может отслеживать журнал веб-сервера сама и делаю это различие. Мой хостинг план поставляется с webalizer, что делает это очень мило.
Это код javascript, так что это ответ на этот вопрос.
Однако было бы неплохо знать, как отслеживать загрузки с помощью другого метода (без переключения хостов).
Аннотирование YouTube видео программно
Я хочу иметь возможность отображать обычное видео YouTube с наложенными аннотациями, состоящими из цветных прямоугольников для каждого кадра. Единственное требование состоит в том, что это должно быть сделано программно.
YouTube теперь имеет аннотации, но требует, чтобы вы использовали их переднюю часть, чтобы создать их вручную. Я хочу иметь возможность генерировать их. Как лучше всего это сделать?
Несколько идей:
- Создайте свой собственный Flash плеер (ew?)
- Каким-то образом нарисуйте над игроком YouTube Flash. Сработает ли это?
- Обратный инженер & угон YouTube системы аннотаций. Либо возня с локальными файлами, либо перенаправление его попытки загрузки комментарий. (используя Greasemonkey? Firefox плагин?)
Идея, которая не считается:
скачать видео
Как вы отлаживаете PHP скриптов?
Как вы отлаживаете PHP скрипты?
Я знаю об основной отладке, такой как использование отчетов об ошибках. Отладка точки останова в PHPEclipse также весьма полезна.
Каков наилучший (с точки зрения быстрого и легкого) способ отладки в phpStorm или любом другом IDE?
Как исправить ошибку "Unprocessed view path found" с плагином ExceptionNotifier в rails 2.1?
После обновления веб-сайта rails 1.2 до 2.1 плагин ExceptionNotifier больше не работает, жалуясь на эту ошибку:
ActionView::TemplateFinder::InvalidViewPath: необработанный путь представления найдено: "/path/to/appname/vendor/plugins/exception_notification/lib/../views". Задайте пути просмотра с помощью #append_view_path, #prepend_view_path, или #view_paths=.
Что вызывает это и как я могу это исправить?
Повреждение кучи под Win32; как найти?
Я работаю над многопоточным приложением C++, которое разрушает кучу. Обычные инструменты для обнаружения этого повреждения кажутся неприменимыми. Старые сборки (18 месяцев) исходного кода демонстрируют такое же поведение, как и самый последний релиз, поэтому это было сделано в течение длительного времени и просто не было замечено; с другой стороны, исходные дельты не могут быть использованы для определения того, когда была введена ошибка - в репозитории есть много изменений кода.
Подсказка для аварийного поведения заключается в том, чтобы генерировать пропускную способность в этом системном сокете передачи данных, которые загружаются во внутреннее представление. У меня есть набор тестовых данных, которые периодически вызывают исключение приложения (различные места, различные причины-в том числе сбой выделения кучи, таким образом: повреждение кучи).
Такое поведение, по-видимому, связано с мощностью CPU или пропускной способностью памяти; чем больше у каждой машины есть, тем легче она падает. Отключение ядра hyper-threading core или двухъядерного ядра снижает скорость (но не устраняет) повреждения. Это наводит на мысль о проблеме, связанной со сроками.
А теперь вот в чем загвоздка:
Когда он выполняется в облегченной среде отладки (скажем, Visual Studio 98 / AKA MSVC6), повреждение кучи достаточно легко воспроизводится - проходит десять или пятнадцать минут, прежде чем что-то ужасно выходит из строя и возникают исключения, например alloc; при работе в сложной среде отладки (Rational Purify, VS2008/MSVC9 или даже Microsoft Application Verifier) . система становится привязанной к скорости памяти и не падает (привязка к памяти: CPU не становится выше 50% , индикатор диска не горит, программа работает так быстро, как может, коробка потребляет 1.3G из 2G RAM). Итак, у меня есть выбор между возможностью воспроизвести проблему (но не идентифицировать причину) или возможностью идентифицировать причину или проблему, которую я не могу воспроизвести.
Мои текущие лучшие догадки о том, куда идти дальше:
- Получите безумно грубый ящик (чтобы заменить текущий ящик dev: 2Gb RAM в
E6550 Core2 Duo); это позволит повторить сбой, вызывающий неправильное поведение при работе в мощной среде отладки; или - Перепишите операторы
newиdelete, чтобы использоватьVirtualAllocиVirtualProtectдля обозначения памяти как доступной только для чтения, как только это будет сделано. Бегите подMSVC6и пусть OS поймает плохого парня, который пишет в освобожденную память. Да, это признак отчаяния: кто, черт возьми, переписываетnewиdelete?! Интересно, будет ли это так же медленно, как в случае с Purify и др.
И нет: доставка с встроенным прибором Purify-это не вариант.
Коллега только что прошел мимо и спросил "Stack Overflow? Are we getting stack overflows now?!?"
А теперь вопрос: как мне найти корруптор кучи?
Обновление: балансировка new[] и delete[] , похоже, прошла долгий путь к решению этой проблемы. Вместо 15 минут приложение теперь работает примерно за два часа до сбоя. Но пока еще нет. Есть еще какие-нибудь предложения? Повреждение кучи сохраняется.
Обновление: сборка выпуска под Visual Studio 2008 кажется значительно лучше; текущие подозрения основываются на реализации STL , которая поставляется с VS98 .
- Воспроизвести проблему.
Dr Watsonсоздаст дамп, который может быть полезен в дальнейшем анализе.
Я приму это к сведению, но меня беспокоит, что доктор Уотсон будет спотыкаться только после того, как это произойдет, а не тогда, когда куча будет растоптана.
Другой попыткой может быть использование
WinDebugв качестве инструмента отладки, который является довольно мощным и в то же время легким.
В данный момент это опять же происходит: не очень-то помогает, пока что-то не пойдет не так. Я хочу поймать вандала с поличным.
Возможно, эти инструменты позволят вам хотя бы сузить проблему до определенного компонента.
Я не питаю больших надежд, но отчаянные времена требуют этого...
И вы уверены , что все компоненты проекта имеют правильные настройки библиотеки времени выполнения (
C/C++ tab, категория генерации кода в настройках проекта VS 6.0)?
Нет, я не буду, и завтра я проведу пару часов, просматривая рабочее пространство (58 проектов в нем) и проверяя, что все они компилируются и связываются с соответствующими флагами.
Обновление: это заняло 30 секунд. Выберите все проекты в диалоговом окне
Settings , снимите флажок, пока не найдете проекты, которые не имеют правильных настроек (все они имели правильные настройки).
Visual Studio " не удалось запустить отладку на веб-сервере. Веб-сервер не ответил своевременно."
Я получаю следующую ошибку довольно регулярно при компиляции в Visual Studio и запуске моего веб-приложения:
"Не удалось запустить отладку на веб-сервере. Веб-сервер не ответил своевременно. Это может быть связано с тем, что другой отладчик уже подключен к веб-серверу."
Обычно это происходит после того, как вы уже отладили приложение один раз. Из командной строки я запускаю "iisreset /restart"", и это устраняет проблему.
Как я могу предотвратить это в первую очередь?
Рекомендуется add-ons/plugins для Microsoft Visual Studio
Может ли кто-нибудь порекомендовать какой-нибудь хороший add-ons/plugins для Microsoft Visual Studio? Халява предпочтительнее, но если она того стоит, то это нормально.
Результаты Paging SQL Server 2005
Как сделать страницу результатов в SQL Server 2005?
Я попробовал это сделать в SQL Server 2000, но надежного способа сделать это не было. Теперь мне интересно, есть ли у SQL Server 2005 встроенный метод?
Например, если я перечисляю пользователей по их имени пользователя, я хочу иметь возможность возвращать только первые 10 записей, затем следующие 10 записей и так далее.
Любая помощь была бы очень признательна.
Простое решение MOLAP
Для анализа большого количества текстовых журналов я сделал некоторые хакерские действия, которые выглядят так:
- Локально импортировать журналы в Access
- Перерабатывать ссылке куб с предыдущими MDB в услуги обработки 2000 (Да это 2К)
- Используйте Excel для визуализации Куба (он не большой - до миллионов необработанных записей)
Мой hackery-это успех, и все больше людей требуют доступа к моему инструменту. Как вы видите, я вижу больше автоматизации и проще deployment.
Есть ли у вас сейчас какие-то инструменты / библиотеки, которые дали бы мне то же самое, но с более легким deployment? Вид встроенного сервиса OLAP ?
Edit: я слышал о Мондриане, но мы не делаем много с Java. Вы видели что-то подобное, сделанное для .Net/Win32 ? Comercial также OK.
Как вернуть страницу результатов из SQL?
Многие приложения имеют сетки, которые отображают данные из таблицы базы данных по одной странице за раз. Многие из них также позволяют пользователю выбирать количество записей на странице, Сортировать по любому столбцу и перемещаться по результатам.
Что такое хороший алгоритм для реализации этого шаблона без приведения всей таблицы к клиенту и последующей фильтрации данных на клиенте. Как вы приносите только те записи, которые хотите показать пользователю?
Разве LINQ упрощает решение?
Есть ли движок wiki, который поддерживает создание страниц с помощью email?
Я хочу объединить всю свободную информацию о компании, в которой я работаю, в базу знаний. A wiki, похоже, является способом пойти, но большая часть соответствующей информации похоронена внутри файлов PST, и потребовались бы века, чтобы убедить людей вручную переводить свои электронные письма один за другим (включая вложения) на страницы wiki. Поэтому я ищу движок wiki, который поддерживает создание страниц с помощью email, то есть способен получать email (поддерживая обычный текст, html и вложения), а затем создавать соответствующую страницу. Поддержка индексации файлов и поиск дубликатов были бы огромным бонусом.
Я попробовал с WikiMatrix, но не нашел то, что искал. Я бы не прочь построить свой собственный движок (заимствуя пару фрагментов здесь и там для декодирования MIME), но я не думаю, что это редкая проблема, поэтому нет никакой реализации.
В Visual Studio вы должны быть членом группы "пользователи" отладка или администраторов, чтобы начать отладку. А что, если вы есть, но это не работает?
На моей машине Windows XP Visual Studio 2003 2005 и 2008 Все жалуются, что я не могу начать отладку своего веб-приложения , потому что я должен быть членом группы отладочных пользователей или группы администраторов. Итак, я администратор, и я добавил пользователей отладки на всякий случай, и он все еще жалуется.
Если не считать переформатирования моей машины и запуска заново, кто-нибудь сталкивался с этим и исправлял его [с помощью какой-то недокументированной команды]?
VS2008 SP1 аварийно завершает работу при отладке файла XSLT
Я использую VS2008 SP1 - не знаю, произошло ли бы это до того, как я применил SP1, поскольку я никогда не пробовал его до вчерашнего дня. Я попытался отладить довольно простой файл XSLT с помощью VS2008 SP1 и получил этот сбой от VS2008 SP1:
Microsoft Visual Studio
Произошла непредвиденная ошибка. Рекомендуется как можно скорее перезапустить приложение.
Ошибка: неопределенная ошибка
Файл: vsee\pkgs\vssprovider\sccprj.cpp
Firefox плагин-сокеты
Я всегда хотел способ сделать сокет-соединение с сервером и позволить серверу управлять страницей DOM. Например, это можно использовать на странице котировок акций, чтобы сервер мог отправлять новые котировки по мере их поступления.
Я знаю, что это классическое ограничение (функция?) протокола запроса/ответа HTTP, но я думаю, что это может быть реализовано как плагин Firefox (кросс-браузерная совместимость не важна для моего приложения). Решения Java/Flash неприемлемы, потому что (насколько я знаю) они живут в коробке и не могут взаимодействовать с DOM.
Может ли кто-нибудь подтвердить, что это в пределах возможностей плагина Firefox? Кто-то уже создал это или что-то подобное?
Начало работы с плагином Picasa
Кто-нибудь здесь знает какие-либо ресурсы о том, как начать писать плагин для Google Picasa? Я люблю его для управления фотографиями, но у меня есть некоторые идеи о том, как это может быть лучше.
- Riya-esque facial search: учитывая достаточно большой корпус лиц и фотографий (люди, как правило, часто повторяются в альбомах отдельных лиц (семья, друзья), я бы подумал, что можно было бы сделать какую-то полуработающую версию этого. И с 13 + концертами / 7 годами фотографий, это было бы очень хорошо для поиска.
- Загрузить в Facebook EDIT: кто-то уже сделал очень хорошую версию
- На самом деле, загружайте в любую собственность, отличную от Google.
Я знаю, что есть определенные Плагины APIs и Picasa2Flickr, и мне было интересно, видел ли кто-нибудь какие-либо ресурсы по этой теме или имел какой-либо опыт
Как загрузить плагины в .NET?
Я хотел бы предоставить некоторый способ создания динамически загружаемых плагинов в моем программном обеспечении. Типичный способ сделать это-использовать функцию LoadLibrary WinAPI для загрузки dll и вызова GetProcAddress , чтобы получить указатель на функцию внутри этого dll.
Мой вопрос заключается в том, как мне динамически загрузить плагин в приложении C#/.Net?
DLL плагин, который создает родительское окно не обрабатывает сообщения правильно
Я создаю фреймворк плагина, где мое приложение загружает серию плагинов DLL, затем создает новое окно и передает этот дескриптор нового окна плагину. Плагин может использовать этот дескриптор для создания собственного GUI.
Кажется, все работает очень хорошо. Единственная проблема заключается в том, что когда я нажимаю TAB на виджет плагина (например, editbox), он не переходит к другому виджету. Я выяснил, что некоторые сообщения Windows передаются, а некоторые - нет. WM_KEYDOWN передается для других ключей, потому что я могу ввести в поле редактирования, но это сообщение не обрабатывает ключ TAB.
Надеюсь, у кого-то есть подсказка.
Я использую Borland VCL с CBuilder, но я думаю, что могу использовать любую платформу под WIN32 для создания этих плагинов, поскольку они никогда не знают, как были созданы их родительские windows.
Какие инструменты (бесплатные или другие) вы находите полезными для разработки и отладки C#/C++?
Вот некоторые из них, которые я использую (все они находятся в свободном доступе):
Hex Редактор: Hexplorer
Отладчик: WinDbg
Компилятор Документации: SandCastle
Автоматическая Сборка: Круиз Control.Net
Программное обеспечение для анализа журнала Webserver?
Могу ли я получить некоторые рекомендации (желательно с некоторыми причинами) для хорошего программного обеспечения анализа журналов для Apache 2.2 файлов журналов доступа?
Я слышал о Webalizer и AWStats , но никогда по-настоящему не использовал ни один из них, и хотел бы знать:
- Что они могут сделать
- Почему они полезны
- Интересное применение для них
Любые комментарии и мысли приветствуются.
Получение номера репозитория subversion в коде
Я хотел бы реализовать способ записи версии проекта в коде, чтобы его можно было использовать при тестировании и отслеживать ошибки. Похоже, что лучшим номером версии для использования будет просто текущий номер версии из Subversion. Есть ли простой способ закрепить это число в заголовочном файле (C++ в моем случае) или что-то еще, что я могу получить в коде? Я думаю, что это пост-коммит-крючок или что-то в этом роде?
Есть ли у кого-нибудь опыт реализации этого (с кодом для обмена, пожалуйста?), или может предложить лучшую альтернативу? Спасибо.
Как настроить VS2008 для открытия только одного webserver в решении с несколькими проектами?
Начиная с 2005 года, VS начал это поведение при запуске сеанса отладки он порождает webserver для каждого проекта в решении. У меня есть решение с 15 проектами, поэтому оно занимает некоторое время и является пустой тратой ресурсов. Есть ли способ настроить его по-другому, кроме простого использования IIS?
Как лучше всего распределить инструменты командной строки python?
Мой текущий скрипт setup.py работает нормально, но он устанавливает tvnamer.py (инструмент) как tvnamer.py в пакеты сайта или что-то подобное..
Можно ли сделать setup.py install tvnamer.py как tvnamer и / или есть ли лучший способ установки приложений командной строки?
Решение deployment, CM, InstallShield
Люди,
У нас есть 4 или 5 утилит, которые работают в сочетании с нашим приложением. Эти утилиты представляют собой либо .bat файлов, либо VB приложения, PowerBuilder и т. д. Я пытаюсь управлять этими utils в системе управления версиями и пытаюсь найти лучший способ назначить им версии. Прямо сейчас разработчики используют метаданные системы управления версиями-в частности, метку-для хранения номера версии инструмента.
Моя цель состоит в том, чтобы иметь индивидуальные пакеты InstallShield для каждой утилиты, а также простые средства для управления и назначения номеров версий этим пакетам.
Вы бы рекомендовали отдельный файл .ini с информацией, или хранить информацию в самом файле InstallShield .ism, или просто использовать информацию о метаданных из средства управления версиями?
UPDATE :
Мне нравится эта идея, Орион. Но у меня есть одна забота. Скрипт, увеличивающий номер версии... он не может быть достаточно умен, чтобы увеличить основное число и т. д. право. напр. если один из utils имеет версию 1.2.3, и мы находимся в точке, где новая версия является 2.0.0. Сценарий может быть не в состоянии справиться с этим.
Я думаю, что это во многом связано с нашими методами ветвления-у нас их нет. Люди думали, что раз уж утили такие маленькие, то источник может и не нуждаться в ответвлениях.
412   3   22:42, 20th August, 2020
Автономные средства отладки хранимых процедур
Я искал хороший бесплатный отладчик для STP (хранимых процедур), поскольку мне нужно внести изменения в некоторые из них в рамках моего недавнего проекта. Хранимые процедуры хранятся в независимых файлах .sql , а не в коде.
В моем случае отладчик значительно ускорит процесс. Может ли кто-нибудь порекомендовать какие-либо инструменты, которые могут быть использованы для этого?
TCL разработка: среда отладки
Мне нравится немного взлома TiVo в свободное время-TiVo использует вариант Linux и TCL . Я хотел бы написать сценарии TCL на моем ноутбуке Windows, протестировать их, а затем FTP их на мой TiVo.
Могу ли я получить рекомендацию для среды отладки TCL для Windows, пожалуйста?
Виды в отдельных сборках в ASP.NET MVC
Я пытаюсь создать веб-приложение, в котором я хочу иметь возможность подключать отдельные сборки. Я использую MVC preview 4 в сочетании с Unity для внедрения зависимостей, которые я использую для создания контроллеров из моих сборок плагинов. Я использую WebForms (default aspx) в качестве движка представления.
Если я хочу использовать представление, я застрял на тех, которые определены в основном проекте, из-за динамической компиляции части ASPX. Я ищу правильный способ вложить файлы ASPX в другой assembly, не проходя через весь шаг deployment. Неужели я упускаю что-то очевидное? Или мне следует прибегнуть к программному созданию своих представлений?
Update: я изменил принятый ответ. Несмотря на то, что ответ Дейла очень скрупулезен, я пошел за решением с другим поставщиком виртуальных путей. Он работает как заклинание и занимает всего около 20 строк кода, я думаю.
Как лучше всего распределить инструменты командной строки python?
Мой текущий скрипт setup.py работает нормально, но он устанавливает tvnamer.py (инструмент) как tvnamer.py в пакеты сайта или что-то подобное..
Можно ли сделать setup.py install tvnamer.py как tvnamer и / или есть ли лучший способ установки приложений командной строки?
Решение deployment, CM, InstallShield
Люди,
У нас есть 4 или 5 утилит, которые работают в сочетании с нашим приложением. Эти утилиты представляют собой либо .bat файлов, либо VB приложения, PowerBuilder и т. д. Я пытаюсь управлять этими utils в системе управления версиями и пытаюсь найти лучший способ назначить им версии. Прямо сейчас разработчики используют метаданные системы управления версиями-в частности, метку-для хранения номера версии инструмента.
Моя цель состоит в том, чтобы иметь индивидуальные пакеты InstallShield для каждой утилиты, а также простые средства для управления и назначения номеров версий этим пакетам.
Вы бы рекомендовали отдельный файл .ini с информацией, или хранить информацию в самом файле InstallShield .ism, или просто использовать информацию о метаданных из средства управления версиями?
UPDATE :
Мне нравится эта идея, Орион. Но у меня есть одна забота. Скрипт, увеличивающий номер версии... он не может быть достаточно умен, чтобы увеличить основное число и т. д. право. напр. если один из utils имеет версию 1.2.3, и мы находимся в точке, где новая версия является 2.0.0. Сценарий может быть не в состоянии справиться с этим.
Я думаю, что это во многом связано с нашими методами ветвления-у нас их нет. Люди думали, что раз уж утили такие маленькие, то источник может и не нуждаться в ответвлениях.
509   3   20:27, 4th August, 2020
Автономные средства отладки хранимых процедур
Я искал хороший бесплатный отладчик для STP (хранимых процедур), поскольку мне нужно внести изменения в некоторые из них в рамках моего недавнего проекта. Хранимые процедуры хранятся в независимых файлах .sql , а не в коде.
В моем случае отладчик значительно ускорит процесс. Может ли кто-нибудь порекомендовать какие-либо инструменты, которые могут быть использованы для этого?
Как я могу регистрировать необнаруженные исключения в PHP?
Я выяснил, как преобразовать ошибки в исключения, и я хорошо отображаю их, если они не пойманы, но я не знаю, как их правильно регистрировать. Просто записать их в файл не будет полезно, не так ли? И вы бы рискнули получить доступ к базе данных, когда вы еще не знаете, что вызвало исключение?
Рекомендуемый SQL дизайн базы данных для тегов или меток
Я слышал о нескольких способах реализации тегирования; использование таблицы сопоставления между TagID и ItemID (имеет смысл для меня, но масштабируется ли она?), добавление фиксированного числа возможных столбцов TagID к ItemID (кажется, это плохая идея), сохранение тегов в текстовом столбце, разделенном запятыми (звучит безумно, но может сработать). Я даже слышал, что кто-то рекомендовал разреженную матрицу, но тогда как же имена тегов растут изящно?
Я пропустил лучшую практику для тегов?
Как я могу использовать Linq для подкачки общей коллекции?
У меня есть объект типа System.Generic.Collections.List(Of MyCustomClass).
Учитывая целочисленные вариабли pagesize и pagenumber, как я могу запросить только одну страницу MyCustomClass объектов?
Страница общей коллекции без Linq
У меня есть объект типа System.Generic.Collections.List(Of MyCustomClass).
Учитывая целочисленные varaibles pagesize и pagenumber, как я могу собрать только одну страницу объектов MyCustomClass ?
Вот что у меня есть. Как я могу улучшить его?
'my given collection and paging parameters
Dim AllOfMyCustomClassObjects As System.Collections.Generic.List(Of MyCustomClass) = GIVEN
Dim pagesize As Integer = GIVEN
Dim pagenumber As Integer = GIVEN
'collect current page objects
Dim PageObjects As New System.Collections.Generic.List(Of MyCustomClass)
Dim objcount As Integer = 1
For Each obj As MyCustomClass In AllOfMyCustomClassObjects
If objcount > pagesize * (pagenumber - 1) And count <= pagesize * pagenumber Then
PageObjects.Add(obj)
End If
objcount = objcount + 1
Next
'find total page count
Dim totalpages As Integer = CInt(Math.Floor(objcount / pagesize))
If objcount Mod pagesize > 0 Then
totalpages = totalpages + 1
End If
Механизм правил с открытым исходным кодом с приличным интерфейсом для написания правил
Я пытаюсь найти механизм бизнес-правил с открытым исходным кодом, который имеет приличный интерфейс для построения правил.
OR по крайней мере один, который хорошо работает на платформе .Net и был обновлен где-то за последние 12 месяцев.
Спасибо,
PostgreSQL: индексы GIN или GiST?
Из той информации, которую я смог найти, они оба решают одни и те же проблемы - более эзотерические операции, такие как удержание массива и пересечение (&&,@>, <@, и т. д.). Однако мне было бы интересно получить совет о том, когда использовать тот или иной метод (или ни один из них).
Документация PostgreSQL содержит некоторую информацию об этом:
- GIN поиск по индексу примерно в три раза быстрее, чем GiST
- GIN индексация занимает примерно в три раза больше времени, чем GiST
- GIN индексы обновляются примерно в десять раз медленнее, чем GiST
- GIN индексы в two-to-three раз больше, чем GiST
Однако мне было бы особенно интересно узнать, есть ли влияние на производительность, когда объем памяти для индексирования начинает уменьшаться (т. е. размер индекса становится намного больше, чем доступная память)? Мне сказали на канале #postgresql IRC, что GIN должен хранить весь индекс в памяти, иначе он не будет эффективен, потому что, в отличие от B-дерева, он не знает, какую часть читать с диска для конкретного запроса? Вопрос был бы таков: верно ли это (потому что мне тоже говорили обратное)? Имеет ли GiST такие же ограничения? Существуют ли другие ограничения, о которых я должен знать при использовании одного из этих алгоритмов индексирования?
Acts-as-readable Rails проблема плагина
Я использую Intridea в качестве читаемого плагина Rails для системы обмена сообщениями, которую я сейчас создаю. Я определил свой класс сообщений соответственно:
class Post < ActiveRecord::Base
acts-as-readable
end
И все, кажется, работает по плану, но при попытке заставить приложение показывать непрочитанные сообщения в моем представлении сообщений, я сталкиваюсь с проблемами.
Их пример: (я изменил подчеркивания на дефисы из-за проблем с форматированием)
bob = User.find_by_name("bob")
bob.readings # => []
Post.find_unread_by(bob) # => [<Post 1>,<Post 2>,<Post 3>...]
Post.find_read_by(bob) # => []
Post.find(1).read_by?(bob) # => false
Post.find(1).read_by!(bob) # => <Reading 1>
Post.find(1).read_by?(bob) # => true
Post.find(1).users_who_read # => [<User bob>]
Post.find_unread_by(bob) # => [<Post 2>,<Post 3>...]
Post.find_read_by(bob) # => [<Post 1>]
bob.readings # => [<Reading 1>]
Поэтому кажется, что если бы я хотел перечислить количество непрочитанных сообщений, находящихся в почтовом ящике (например, Inbox (39) ), я должен был бы сделать что - то вроде:
<%= Post.find_unread_by(current-user).count %>
Но безрезультатно. Я всегда, кажется, застреваю на простых проблемах просмотра после того, как все установлено. Есть идеи?
JavaScript редактор в Eclipse
Я ищу лучший редактор JavaScript, доступный в качестве плагина Eclipse. Я использую Spket, и это хорошо. Но есть ли еще более лучший вариант?
SQL many-to-many соответствие
Я внедряю систему тегов для веб-сайта. Существует несколько тегов на объект и несколько объектов на тег. Это достигается путем ведения таблицы с двумя значениями для каждой записи, по одному для идентификаторов объекта и тега.
Я ищу, чтобы написать запрос, чтобы найти объекты, которые соответствуют заданному набору тегов. Предположим, у меня были следующие данные (в формате [object] - > [tags]* )
apple -> fruit red food
banana -> fruit yellow food
cheese -> yellow food
firetruck -> vehicle red
Если я хочу соответствовать (красный), я должен получить apple и firetruck. Если я хочу соответствовать (фрукты, еда), я должен получить (яблоко, банан).
Как написать запрос SQL do do what I want?
@Jeremy Рутен,
Спасибо за ваш ответ. Используемая нотация использовалась для предоставления некоторых образцов данных - в моей базе данных есть таблица с 1 идентификатором объекта и 1 тегом на запись.
Во-вторых, моя проблема заключается в том, что мне нужно получить все объекты, соответствующие всем тегам. Подставляя свой OR вместо AND вот так:
SELECT object WHERE tag = 'fruit' AND tag = 'food';
Не дает никаких результатов при запуске.
Отладка asp.net с firefox и visual studio.net-очень медленная по сравнению с IE
Отладка asp.net веб-сайтов/веб-проектов в visual studio.net 2005 с Firefox загружается медленнее чем использование IE.
Я где-то читал, что есть способ исправить это, но я ни за что на свете не смогу найти его снова.
Кто-нибудь знает, о чем я говорю, и может указать мне правильное направление, пожалуйста?
Овации Джон
редактировать
извините, Роб, я не очень хорошо объяснился (снова). Я предпочитаю Firefox для отладки (firebug и т. д)
нажатие F5 при отладке с IE браузер запускается очень быстро, и щелчок по моему веб-приложению происходит почти мгновенно, и когда брейкпонт попадает в мой код сразу же без задержек.
нажатие F5 при отладке с FireFox браузер запускается очень медленно (хорошо, у меня есть плагины, которые замедляют загрузку FF), но щелчок по моему веб-приложению действительно очень медленный, и когда точка останова нажата, требуется целая вечность, чтобы взломать код.
клянусь, я где-то читал, что в Firefox (about:config может быть?) что при изменении на какую-то магическую настройку все это сортируется.
Вставка в самом конце в FCKeditor
FCKeditor имеет InsertHtml API (документ JavaScript API), который вставляет HTML в текущую позицию курсора. Как вставить в самом конце документа?
Нужно ли мне запускать браузер нюхать что-то вроде этого
if ( element.insertAdjacentHTML ) // IE
element.insertAdjacentHTML( 'beforeBegin', html ) ;
else // Gecko
{
var oRange = document.createRange() ;
oRange.setStartBefore( element ) ;
var oFragment = oRange.createContextualFragment( html );
element.parentNode.insertBefore( oFragment, element ) ;
}
или есть благословенный путь, который я пропустил?
Edit: конечно, я могу переписать весь HTML, как предлагают ответы, но я не могу поверить, что это путь "blessed". Это означает, что браузер должен уничтожить все, что у него есть, и повторно проанализировать документ с нуля. Это не может быть хорошо. Например, я ожидаю, что это сломает стек отмены.
Удаленная отладка PHP сценариев командной строки с помощью Zend?
Я использую Zend Studio для удаленной отладки моих скриптов php на сервере разработки. Он отлично подходит для веб-кода, но могу ли я заставить его работать со сценариями командной строки?
У меня есть несколько вспомогательных приложений, чтобы заставить мое приложение работать. Было бы очень полезно запустить удаленный отладчик через командную строку вместо веб-браузера, чтобы я мог проверить их.
Я предполагаю, что это возможно, так как я думаю, что Zend использует xdebug для разговора с Eclipse. По-видимому, он добавляет некоторые параметры к запросу, чтобы разбудить код Zend по запросу. Я предполагаю, что мне нужно будет подключиться к этому?
UPDATE
Я закончил тем, что использовал xdebug с protoeditor over X для отладки.
Семейный Сайт CMS
Я ищу CMS, который был бы невероятно удобным для пользователя и имел бы следующие функции:
- очень простая доска объявлений (не требуется вход в систему)
- родословная
- область рассказывания историй
- раздел фотографий
- раздел новостей
Есть ли что-нибудь там, как это, что действительно легко настраивается? Я уже связался с Мамбо и семейными связями, но мне не нравилось ни то, ни другое. В прошлом я просто программировал свои собственные веб-сайты, из-за отсутствия легко реализуемых функций. Тем не менее, я предполагаю, что есть что-то, что мне нужно там просто так, что я не могу найти. Спасибо.
Я не хочу, чтобы кто-то входил в систему, например. Это для семейного веб-сайта, и большая часть моей семьи действительно не знает, что такое веб-сайт, не говоря уже о том, как его использовать. Я хочу супер простой сайт с огромными кнопками и не так много отвлекающих факторов. Семейные связи-хороший пример того, что я хочу, за исключением того, что фотоальбом ужасен. Я хочу, чтобы люди отправляли сообщения без входа в систему или регистрации, и не видели эту способность на сайтах mambo, которые я смотрел.
Как создать подключаемую программу Java?
Я хочу создать программу Java, которая может быть расширена с помощью плагинов. Как я могу это сделать и где я должен искать?
У меня есть набор интерфейсов, которые плагин должен реализовать, и он должен быть в jar. Программа должна следить за новыми банками в относительной (к программе) папке и регистрировать их каким-то образом.
Хотя мне нравится Eclipse RCP, я думаю, что это слишком много для моих простых потребностей.
То же самое относится и к Spring, но так как я все равно собирался посмотреть на него, я мог бы попробовать.
Но все же я предпочел бы найти способ создать свой собственный плагин "framework" как можно проще.
Не удается добавить ярлык запуска (Eclipse плагин)
Я делаю простой дополнительный запуск приложений java для Eclipse 3.2 (JBuilder 2007-8) для внутреннего использования.
Поэтому я просмотрел все связанные с этим документы, включая эту платформу запуска от eclipse.org, и мне удалось заставить все остальное работать, за исключением ярлыка запуска.
Это часть моего plugin.xml.
<extension
point="org.eclipse.debug.ui.launchShortcuts">
<shortcut
category="mycompany.javalaunchext.launchConfig"
class="mycompany.javalaunchext.LaunchShortcut"
description="launchshortcutsdescription"
icon="icons/k2mountain.png"
id="mycompany.javalaunchext.launchShortcut"
label="Java Application Ext."
modes="run, debug">
<perspective
id="org.eclipse.jdt.ui.JavaPerspective">
</perspective>
<perspective
id="org.eclipse.jdt.ui.JavaHierarchyPerspective">
</perspective>
<perspective
id="org.eclipse.jdt.ui.JavaBrowsingPerspective">
</perspective>
<perspective
id="org.eclipse.debug.ui.DebugPerspective">
</perspective>
</shortcut>
Имя конфигурации в разделе category является правильным, а класс В разделе class, я считаю, правильно реализован. (в основном скопировано с org.eclipse.jdt.debug.ui.launchConfigurations.JavaApplicationLaunchShortcut)
Я действительно не уверен, что я должен написать продолжение здесь, но позвольте мне уточнить мой вопрос больше. Я продлил org.eclipse.jdt.debug.ui.launchConfigurations.JavaLaunchShortcut. Кроме того, я добавил свой собственный регистратор к конструкторам и методам, но класс, похоже, даже не создается.
Visio и форвард-Инжиниринг
Вы не знаете, могу ли я использовать Visio для переадресации схемы последовательностей в код (c#)?
Можно ли это сделать с помощью Visio в одиночку или мне нужен плагин?
А как насчет других диаграмм?
Как изменить расположение исходных файлов в файле символов (pdb)
В основном то, что я хочу сделать это так: pdb-файл содержит расположение исходных файлов (например, C:\dev\proj1\helloworld.cs ). Можно ли изменить этот pdb-файл так, чтобы он содержал другое местоположение (например, \more\differenter\location\proj1\helloworld.cs )?
Как выбрать посты с определенными тегами / категориями в WordPress
Это очень конкретный вопрос, касающийся MySQL , как он реализован в WordPress .
Я пытаюсь разработать плагин, который будет показывать (выбирать) сообщения, которые имеют определенные "теги" и принадлежат к определенным "категориям" (оба несколько)
Мне сказали, что это невозможно, потому что так хранятся категории и теги:
wp_postsсодержит список должностей, каждая должность имеет "ID"wp_termsсодержит список терминов (как категорий, так и тегов). Каждый термин имеет двигатели СМД -wp_term_taxonomyимеет список терминов с их TERM_IDs и имеет определение таксономии для каждого из них (либо категория, либо тег)wp_term_relationshipsимеет связи между терминами и должностями
Как я могу присоединиться к таблицам, чтобы получить все записи с тегами "Nuclear" и "Deals", которые также относятся к категории "Category1"?
Компилятор .NET -- DEBUG против RELEASE
В течение многих лет я использую константу компилятора DEBUG в VB.NET для записи сообщений в консоль. Я также использовал System.Diagnostics.Debug.Write подобным образом. Я всегда понимал, что когда RELEASE использовался в качестве опции сборки, все эти операторы были опущены компилятором, освобождая ваш производственный код от накладных расходов отладочных операторов. Недавно, работая с Silverlight 2 Beta 2, я заметил, что Visual Studio на самом деле подключается к сборке RELEASE, которую я запускал с общедоступного веб-сайта, и отображает DEBUG инструкции, которые, как я предполагал, даже не были скомпилированы! Итак, моя первая склонность заключается в предположении, что с моим окружением что-то не так, но я также хочу спросить любого, кто обладает глубокими знаниями о System.Diagnostics.Debug и DEBUG build option в целом, что я могу здесь неправильно понять.
Off-the-Shelf C++ Hex Дамп-Код
Я много работаю с сетевым и последовательным программным обеспечением связи, поэтому мне часто необходимо иметь код для отображения или регистрации hex дампов пакетов данных.
Каждый раз, когда я делаю это, я пишу еще одну процедуру hex-dump с нуля. Я собираюсь сделать это снова, но решил спросить Здесь: есть ли где-нибудь хороший бесплатный код дампа hex для C++?
Особенности, которые я хотел бы:
- N байт на строку (где N каким-то образом настраивается)
- дополнительный дамп ASCII/UTF8 рядом с hex
- настраиваемые отступы, префиксы для каждой строки, суффиксы для каждой строки и т. д.
- минимальные зависимости (в идеале, я бы хотел, чтобы весь код был в заголовочном файле или был фрагментом кода, который я могу просто вставить)
Edit: уточнение: я ищу код, который я могу легко забросить в свои собственные программы для записи в stderr, stdout, файлы журналов или другие подобные выходные потоки. Я не ищу утилиту дампа командной строки hex.
Автоматический скрипт для zip IIS журналов?
Я хотел бы написать сценарий / пакет, который будет собирать мои ежедневные журналы IIS и zip по месяцам.
ex080801.log который находится в формате ex yymmdd .log
ex080801.log - ex080831.log получает молнии и файлы журнала удаляются.
Причина, по которой мы делаем это, заключается в том, что на тяжелом сайте файл журнала За один день может составлять от 500 МБ до 1 Гб, поэтому мы zip их сжимаем, который сжимает их на 98% и сбрасывает реальный файл журнала. Мы используем webtrend для анализа файлов журнала, и он способен считывать в файл zip.
Есть ли у кого-нибудь идеи о том, как это сделать, или вы хотели бы поделиться каким-то кодом?
Почему пагинация так ресурсоемка?
Это одна из тех вещей, которые, кажется, имеют странную кривую, где чем больше я думаю об этом, тем больше это имеет смысл. В определенной степени, конечно. И тогда для меня это вообще не имеет смысла.
Не хочешь просветить меня?
Что означает ServerVariables["APPL_MD_PATH"] извлекает путь метабазы для приложения для ISAPI DLL?
Я пытаюсь заставить приложение ASP.net (v2) работать в отладчике и продолжать работать с проблемой, потому что значение, возвращаемое следующим кодом, является пустой строкой:
HttpContext.Current.Request.ServerVariables["APPL_MD_PATH"].ToLower()
Я выяснил, что это "Retrieves the metabase path for the Application for the ISAPI DLL". Может ли кто - нибудь пролить свет на то, что это значит и почему он может быть пустым?
Этот код работает в нашей живой среде, но я хочу, чтобы он работал на моем PC и мог проходить через исходный код, чтобы я мог посмотреть на другую проблему...
Какой подход лучше в журналировании-файлы или БД?
Хорошо, вот сценарий. У меня есть утилита, которая обрабатывает тонны записей и вводит информацию в базу данных соответственно.
Он работает на этих записях в многопоточных пакетах. Каждый такой пакет записывается в один и тот же файл журнала для создания рабочего процесса trace для каждой записи. Потенциально, мы могли бы сделать около миллиона записей журнала в день.
Должен ли этот журнал быть внесен в базу данных, находящуюся на другом сервере? Рассмотрения:
- Очевидным недостатком записи нескольких потоков в один и тот же файл журнала является то, что сообщения журнала перемешиваются между собой. В базе данных они могут быть сгруппированы по коду пакета.
- Производительность-что бы замедлить пакетную обработку больше? запись в локальный файл или отправка данных журнала в базу данных на другом сервере в той же сети. Теоретически, файл журнала быстрее, но есть ли здесь gotcha?
Существуют ли какие-либо оптимизации, которые могут быть сделаны на любом подходе?
Спасибо.
Удаленная отладка между доменами
У меня есть две машины в двух разных областях. На обоих у меня установлен VS 2005. Я хочу удаленную отладку между ними. Без аутентификации это возможно, но я хочу отлаживать управляемый код. Я не хочу отлаживать напрямую, так как это действительно дерьмовая машина.
Когда я пытаюсь подключиться с отладчиком, я получаю сообщение "The trust relationship between this workstation and primary domain failed." любая идея, как преодолеть это ? Я пробовал трюки с добавлением одного и того же локального имени пользователя на обеих машинах, но не повезло.
EDIT: у меня есть те же Локальные пользователи на обеих машинах. Я начал как VS2005, так и монитор отладки с RunAs, используя локальных пользователей. Я включил аудит Windows на отладочной машине, и я вижу, что локальный пользователь с машины VS2005 пытается войти в систему. Но он терпит неудачу с ошибкой 0xC000018D (ERROR_TRUSTED_RELATIONSHIP_FAILURE)
Гигантский NodeManagerLogs от hibernate в weblogic
Один из наших weblogic 8.1s внезапно начал регистрировать гигантские объемы журналов и заполнять диск.
Бревна, которые дает нам Хассель, находятся в
mydrive:\bea\weblogic81\common\nodemanager\NodeManagerLogs\generatedManagedServer1\managedserveroutput.log
и записи в лог-файле-это просто одни и те же записи entrires, повторяемые снова и снова. Такие вещи, как
19:21:24,470 DEBUG [StdRowLockSemaphore] Lock 'TRIGGER_ACCESS' returned by: LLL-SCHEDULER_QuartzSchedulerThread
19:21:31,923 DEBUG [StdRowLockSemaphore] Lock 'STATE_ACCESS' is deLLLred by: QuartzScheduler_LLL-SCHEDULER-NACDLLLF011219763113220_ClusterManager
19:21:31,923 DEBUG [StdRowLockSemaphore] Lock 'STATE_ACCESS' is being obtained: QuartzScheduler_LLL-SCHEDULER-NACDLLLF011219763113220_ClusterManager
19:21:31,923 DEBUG [StdRowLockSemaphore] Lock 'STATE_ACCESS' given to: QuartzScheduler_LLL-SCHEDULER-NACDLLLF011219763113220_ClusterManager
19:21:31,923 DEBUG [StdRowLockSemaphore] Lock 'TRIGGER_ACCESS' is deLLLred by: QuartzScheduler_LLL-SCHEDULER-NACDLLLF011219763113220_ClusterManager
...
19:17:46,798 DEBUG [CascadingAction] cascading to saveOrUpdate: mypackage.config.common.Share
19:17:46,798 DEBUG [DefaultSaveOrUpdateEventListener] reassociated uninitialized proxy
19:17:46,798 DEBUG [Cascade] done processing cascade ACTION_SAVE_UPDATE for: mypackage.config.common.FileLocation
19:17:46,798 DEBUG [Cascade] processing cascade ACTION_SAVE_UPDATE for: mypackage.config.common.FileLocation
19:17:46,798 DEBUG [CascadingAction] cascading to saveOrUpdate: mypackage.config.common.Share
19:17:46,798 DEBUG [DefaultSaveOrUpdateEventListener] reassociated uninitialized proxy
Я не могу найти какие-либо настройки отладки, установленные в любом месте. Я посмотрел в удаленном запуске classpath и аргументы для управляемого сервера.
Может ли кто-нибудь указать мне направление, чтобы получить контроль над этим файлом журнала?
Reverse proxy: Squid VS nginx?
Выбираю между двумя сервисами на роль кеширующего прокси.
Проект связан с социальными сетями и нагрузка может возрастать с 10-20 до 100 Мбит/с за 1-2 минуты. Пока облачные сервера стартуют — пройдет ещё пара минут.
Стоит задача обеспечить максимально эффективное быстродействие сайта в этот отрезок времени.
Посоветуйте, что лучше использовать для кеширования: Squid или nginx?
Спасибо.
Nginx проблема настройки на 1-м IP было нескольких доменных имен?
Как настроить nginx чтобы на 1-м IP было несколько сайтов
В google множество информации по настройке apache, а по nginx ничего тольком нет, в том числе и на официальном сайте.
Буду рад любой полезной информации, в идеале конечно бы конфиг.
Счас есть 2 IP на которых по 1 сайту. Второй IP купил чисто для теста. На разных IP все без проблем, пытаюсь сделать на 1-м не выходит.
Часть текущего конфига:
server {
listen 89.248.105.84:80;
server_name termoteks.ru www.termoteks.ru;
root /var/www/vhosts/termoteks.ru/public;
passenger_enabled on;
}
server {
listen 89.248.105.87:80;
server_name eugene-studio.ru www.eugene-studio.ru;
location / {
root /var/www/vhosts/eugene-studio.ru/public;
index index.html index.htm;
}
З.Ы. как ясно из части конфига все крутиться на REE и passenger
З.Ы.Ы. совсем забыл, у меня только nginx и никакого apache
Nginx + php-fpm + freebsd. проблема?
Собрал из портов nginx и php5 с php-fpm
Создал vhost для nginx
server {<br/>
server_name site1;<br/>
listen 80;<br/>
access_log /server/logs/nginx/site1.access.log;<br/>
error_log /server/logs/nginx/site1.error.log;<br/>
<br/>
location ~ \.php$ {<br/>
fastcgi_pass 127.0.0.1:9000;<br/>
fastcgi_index index.php;<br/>
fastcgi_param script_FILENAME /server/www/site1$fastcgi_script_name;<br/>
include fastcgi_params;<br/>
}<br/>
<br/>
location / {<br/>
root /server/www/site1;<br/>
}<br/>
<br/>
<br/>
}<br/>
Добавил в rc.conf
nginx_enable="YES"<br/>
php_fpm_enable="YES"<br/>
Запустил nginx и php-fpm
/usr/local/etc/rc.d/php-fpm start<br/>
/usr/local/etc/rc.d/nginx start<br/>
Результат:
PHP страницы не возвращают ничего, даже если это просто текст и там нет скриптов. В error.log nginxа php-fpmа ничего, в server/logs/nginx/site1.error.log тоже ничего.
Код ответа 200.
Кто может разъяснить?
Заранее спасибо.
server {<br/>
server_name site1;<br/>
listen 80;<br/>
access_log /server/logs/nginx/site1.access.log;<br/>
error_log /server/logs/nginx/site1.error.log;<br/>
<br/>
location ~ \.php$ {<br/>
fastcgi_pass 127.0.0.1:9000;<br/>
fastcgi_index index.php;<br/>
fastcgi_param script_FILENAME /server/www/site1$fastcgi_script_name;<br/>
include fastcgi_params;<br/>
}<br/>
<br/>
location / {<br/>
root /server/www/site1;<br/>
}<br/>
<br/>
<br/>
}<br/>nginx_enable="YES"<br/>
php_fpm_enable="YES"<br/>/usr/local/etc/rc.d/php-fpm start<br/>
/usr/local/etc/rc.d/nginx start<br/>
Как лучше исследовать незнакомый HID девайс..?
Есть некое абстрактное устройство «набор лампочек\кнопочек c USB хвостом» и определяющееся как HID.
Наблюдая осциллографом активность во время нажатия кнопочек, мне верится что это устройство посылает репорты.
Вопрос, чем бы мне этот девайс исследовать, может есть программка какая, или в линуксе можно как то заставить данные с HID устройства литься в файл\консоль?
Как видно из формулировки моего вопроса, я ещё совсем не силён в теме, просто перед тем как курить маны по HIDам, мне хотелось бы убедиться что устройство передаёт действительно то что мне нужно, а не какой-то свой статус вроде заряда батарей…
как настроить nginx в качестве фронтенда для apache на debian, не сломав при этом панель plesk
Саппорт предложил мне сделать за 140 евро. мой проект некоммерческий и такую сумму я не потяну, поскольку я не мастак в управлении впс, не смогу полностью управлять серваком без панели, оттого собсно и вопрос.
Убрать и добавить www
Возможно ли в nginx при запросе к любому обслуживаемому домену второго уровня прибавлять www. вначале, а для домена третьего уровня убирать? Например:
domain.ru -> www.domain.ru
www.some.domain.ru -> some.domain.ru
Хочу обратить внимание, что заранее имя домена неизвестно.
Хотелось бы увидеть пример конфига
Сервера для нагруженного проекта?
День добрый, уважаемые!
Несколько сходных вопросов, помогите, пожалуйста, если знаете:
1. Сколько примерно серверов нужно, чтобы выдерживать нагрузку в 100.000 человек в день, пик — 150.000 (проект большой, соц сеть, но оптимизирован под нагрузки)?
При этом: Проекта на Java
Сервер приложений Jboss
БД PostgreSQL или MySQL
2. Какого класса берутся сервера под такие задачи и сколько в среднем стоит один?
3. Кто знает примеры по известным проектам, поделитесь, пожалуйста (Хабр, контакт и т.д.)?
Спасибо за помощь!
Почему FastCGI+Nginx не видят настроек PHP?
Развернул на сервере классическую связку из Apache:8080+Nginx:80+FastCGI. При этом php при обращении к скриптам через 80 порт перестал видеть свои настройки (загружаются дефолтные). Пробовал выставлять настройки в php_value через .htaccess — всё равно они в упор не видятся.
А через 8080 порт все настройки нормально подтягиваются.
Сравните: clio.su/test.php vs. clio.su:8080/test.php (параметр upload_max_filesize для тестирования в php.ini выставлен 4M, в .htaccess 8M, default 2M)
Что нужно подправить в nginx.conf (httpd.conf), чтобы php.ini тоже принимал участие в работе связки через fastcgi? Чувствую, что решается проблема элегантно, но перелопатив яндекс, я не нашёл решения.
PS: И ещё попутный вопрос, тоже связанный с fastcgi. При использовании php функции mail() вся почта теперь отправляется с полем FROM: <www@внутреннее_имя_сервера>… и соответственно заруливается почтовиками по причине недействительности адреса. Переменная php sendmail_from не применяется.
UPD: Небольшое уточнение. У нас spawn_fcgi
nginx — один домен
Здравствуйте!
Подскажите как настроить nginx чтобы он не воспринимал лишние домены. Сейчас почему то он принимает все домены. Пробовал через
server {
listen 80 default;
server_name _;
access_log /dev/null;
error_log /dev/null;
return 444;
}
Уточню, для своего домена я конфиг сделал, мне нужно чтобы nginx отсекал все лишние домены.
listen 80 default;
server_name _;
access_log /dev/null;
error_log /dev/null;
return 444;
}
Как считать количество обращений к картинке через nginx?
Господа, поковырялся сегодня с утра и внятного ничего не нашел. Требуется выводить статистику по обращениям к картинкам, картинки ес-но в статике и не хотелось бы их выдавать по средствам скриптов. Как умные люди считают количество обращений к статичному контенту? Смотрел уже и парсеры логов типа wiki.nginx.org/NginxHttpLogRequestSpeed, но что-то подсказывает, что не самый хороший путь решения задачи.
Вот имеется такой модуль wiki.nginx.org/HttpEchoModule#echo_exec но не знаю на счет быстроты работы. Вообщем, у кого были аналогичные задачи, поделитесь вариантами решения. Заранее благодарю за ответ!
Настройка nginx для отдачи популярных файлов с SSD
Друзья, ломаю голову над несколько не тривиальной задачей.
Суть: есть файлообменник. Storage-серверы укомплектованы SSD-дисками. Есть план складывать на SSD часто запрашиваемые файлы и отдавать их с них. Подсчетом популярности файлов, копированием и удалением уже не популярных (размеры SSD, увы, ограничены) будет заниматься скрипт в автоматическом режиме.
Проблема — если скрипт сработал и удалил файл в момент того, когда его кто-то скачивает, соединение оборвется с ошибкой.
Наведите на мысль, как реализовать механизм временных локов активных файлов на удаление, либо, может быть, есть какой-то магический способ заставить nginx искать файл в другом location'е (с HDD) при его исчезновении из текущего места? Последнее, конечно, звучит больше как сказка, но мало ли…
Черный список анонимайзеров и прокси-серверов?
Есть ли возможность где-нибудь скачивать обновляемый список анонимайзеров и прокси-серверов? Сервисы типа OpenDNS и Rejector имеют свои недостатки.
Обмануть location в nginx
Можно ли обмануть location в nginx? А точнее, канонизирует ли nginx URI (и всегда ли)?
Допустим, хочу ограничить по IP доступ к директории files/private:
location ~ ^/files/private/.*$ {
if ($remote_addr != '127.0.0.1') {return 403;}
...
}
Понимаю, что в данном случае можно было обойтись без регулярного выражения. Это всего лишь пример.
Пользователь может запросить, как example.org/files/private/my.zip, так и http://example.org/files/./private/my.zip (обычные браузеры автоматически преобразуют вторую ссылку). Сработает ли мой location во втором случае? Если сработает, то всегда ли nginx канонизирует URI перед прогоном его по конфигурации? Где-нибудь в документации об этом сказано четко?
if ($remote_addr != '127.0.0.1') {return 403;}
...
}
Посоветуйте книгу по Apache Nginx
Посоветуйте русскоязычную (ые) книги по администрированию Apache и Nginx
Использование proxy_cache_bypass в nginx
Мне необходимо пустить локальных пользователей сразу на бэкэнд. Возможно ли это сделать средствами директивы proxy_cache_bypass. Если да, то каким примерно должен быть конфиг?
Отдача картинок с GET параметрами не средствами nginx, а php
Тех. поддержка нашего выделенного сервера в аренду (под их управлением) упорно морочит голову, в ответ на вопрос:
Можно ли сделать, чтобы запросы изображений с GET параметрами отдавались php, а не nginx?
«www.site.ru/upload/articles/58fa0825907dc76e67e8cb1150a7ac36.jpg?w=100&h=100&strict»
При этом, что данная фича работает на нашем старом сервере, который админил фрилансер (но он пропал).
Куда тыкнуть пальцем тех.поддержку?
Спасибо
Адаптация RewriteRule под nginx для движка SocialEngine
Друзья, помогите. Пытаюсь запустить SocialEngine напрямую под nginx/php-fpm, без Apache. На вид три простых RewriteRule, но сижу уже второй час безуспешно туплю.
Вот, что в оригинале:
RewriteCond %{REQUEST_URI} /index\.php
RewriteRule (.*) index.php?rewrite=2 [L,QSA]
RewriteCond %{REQUEST_URI} /$
RewriteRule (.*) index.php?rewrite=1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?rewrite=1 [L,QSA]
Как это будет в конфиге nginx?
Больше всего вопросов вызывает ранее не знакомый мне флаг QSA. Чувствую, подвох где-то в нем.
RewriteRule (.*) index.php?rewrite=2 [L,QSA]
RewriteCond %{REQUEST_URI} /$
RewriteRule (.*) index.php?rewrite=1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?rewrite=1 [L,QSA]
Nginx как gzip прокси?
Как сконфигурировать Nginx под следующую задачу:
Есть сервер, который может принимать только non-gzip ответы. Есть удаленный ресурс, с которым надо общаться и использовать gzip траффика (сжатие поддерживается удаленным ресурсом). Из приложения я делаю запрос на локальный адрес Nginx-а, он, в свою очередь делает запрос к удаленному серверу, получает ответ, разжимает его и отдает моему приложению.
Переход с Apache на nginx
Вобщем, сейчас у меня настроена и установлена связка nginx+php-fpm (ubuntu 10.04).
Образовалась следующая проблема: необходимо поставить систему управления проектами qdPM.
А она требует директиву веб-сервера AllowOverride All. Разумеется это касается Апача.
Так как всё-таки заставить данную систему работать под nginx?
вот кусок лога:
2010/11/11 18:23:19 [error] 20285#0: *72 open() "/var/www/*****.ru/pm/qdpm/index.php/home/validateLoginForm" failed (20: Not a directory), client: xx.xx.174.10, server: pm.*****.ru, request: "POST /qdpm/index.php/home/validateLoginForm HTTP/1.1", host: "pm.*****.ru", referrer: "http://pm.*****.ru/qdpm/"
nginx и несколько скриптов
Добрый день.
Установил nginx в качестве frontend-а для apache.
У меня есть некоторая папка, и в ней три скрипта, которые должны кешироваться (в них много sql- запросов — а информация обновляется редко).
Каким образом грамотно составить конфиг nginx?
Сейчас вот так
server {
listen 80;
server_name ___ ___;
location / {
proxy_pass ___:8080;
proxy_cache off;
}
location /та самая папка/ {
expires 1d;
access_log off;
proxy_cache itmorating;
proxy_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$request_uri";
proxy_pass __:8080;
proxy_temp_path /data/www/;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 10s;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
}
В данном случае проблема в том, что /script.php и /script.php?123123123 — две разные страницы и кешируются два раза, так что злоумышленник может запросто вызвать переполнение кеша.
listen 80;
server_name ___ ___;
location / {
proxy_pass ___:8080;
proxy_cache off;
}
location /та самая папка/ {
expires 1d;
access_log off;
proxy_cache itmorating;
proxy_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$request_uri";
proxy_pass __:8080;
proxy_temp_path /data/www/;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 10s;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
}
Pidgin — проблема приема сообщений в кодировке cp1252 / Ubuntu 10.10 x64?
Есть Ubuntu 10.10 x64.
Стоит IM клиент Pidgin 2.7.5 обновленный с оф. PPA репозитория (https://launchpad.net/~pidgin-developers/+archive/ppa/)
Большинство сообщений протокола ICQ приходит «кракозяблами».
Декодер от Лебедева — www.artlebedev.ru/tools/decoder показывает, что «непонятные» сообщения приходят в кодировке cp1252.
Как добиться правильного отображения принимаемых сообщений?
P.S.: Подобная ситуация наблюдается и в IM клиенте Empathy
Отдача файлов: nginx или ftp?
Есть сервер с несколькими ТБ фильмов, сериалов, музыки. Сейчас сервер нагружен из-за огромного количества скачивающих.
Вопрос: уменьшится ли нагрузка сервера, если вместо ftp использовать nginx?
Периодически nginx отдает 404 ошибку?
Сайт то работает в норме, то местами подлагивает.
При добавлении комментариев, новостей может выдать nginx 404 ошибку. Со второго раза проходит все гладко. 502 ошибки не возникало.
На сайте висит 1000 человек.
Что может быть? В какую сторону копать? «To many connections» mysql не выдает.
Перенаправлять на другой сервер, если основной не доступен, как?
Редко, но всё таки, складывается такая ситуация: все сайты лежат на арендованном VDS, может так случиться, что он не доступен. Можно ли сделать так, что если такое произошло, клиент попадал на другой сервер, где ему бы сообщили, что в данный момент тех.неполадки?
Актуальная тема "Русскоязычные домены на apache +nginx"
Возникла проблема, которая заключается в том, что панель управления хостингом принимает русскоязычный домены, а вот в настройках вирт. доменов апача и нгинкс полная непонятка.
Как решить?
Просто русские названия апач не принимает, причина этого непонятна.
О Ubuntu Unity
Приветствую. Поставил Ubuntu на нетбук (10.10) все нравится, только вот возник как скрыть панель (Unity), т.е. если скажем серфить через Firefox более комфортней мне без нее. (Да можно обойти полноэкранным режимом (но это не то, что надо).
Просьба помочь :)
Проксирование *.example.com в *.localTLD?
Необходимо проксировать http запросы *.example.com в *.localTLD, при том если somedomain.localTLD не резольвится нужно выкинуть на дефолтную страничку (думаю, это через error page для 502 Bad gateway можно сделать).
Как в nginx, lighttpd, apache сделать такой хитрый прокси с зарание не определенными доменами?
У кого можно взять сервер в аренду?
Подскажите есть ли компании дающие сервер в аренду на несколько дней не в дата-центре а в офис?
Запретить кеширование text/html для nginx
Добрый день.
Есть сайт который отдает небольшие html странички и кучу графики. Задача поставить впереди ngnix, но так, чтобы он кешировал все кроме Content-Type: text/html.
На сам сайт доступа нету, там ничего поправить нельзя. Ткните носом пожалуйста, сам не могу найти решение.
Создание собственного хостинга Ruby on Rails?
Здравствуйте.
Встала необходимость в разделении пользователей на сервере таким образом, чтобы каждый имел доступ по SSH (управление приложением, развертывание приложения), мог устанавливать собственные гемы, работать с БД (MySQL,PostgreSQL,Sqlite,MongoDB) и т.п.
Может кто-то поделиться советом, или направить на какие-то манулы о том, как подобное настроить?
Статьи (мануалы) по распределение нагрузки
Ребят. Помогите пожалуйста найти хорошие статьи по настройке распределения нагрузки web-серверов(apache, mysql, postgresql, nginx) для linux. Тоесть есть некоторое количество серверов и планируется запустить на них lamp и распределять нагрузку между ними
nginx: /message.php?from=<id1>&to=<id2> -> /user/message/new/<id2>
Портирую одно PHP приложение под RoR. Сначала хотел переписать всё с нуля, но требуют вводить новые фичи как можно скорее. Решил поступить так: ищу php скрипты, касающиеся новой фичи, переписываю их под рельсы (работа с той же БД), внедряю. Рельсы крутятся под nginx+passenger. Стоит задача трансляции адресов из пространства php (*.php?*) в RoR REST. Вижу два варианта:
— внутренний rewrite с php на ror для уже портированных скриптов
— определять location с passenger _enabled on для уже портированных скриптов и переписывать запрос уже в ruby приложении (middleware например).
Как бы вы поступили?
Nginx + ISPmanager Lite?
Есть VPS, на ней стоит Debian 5 Lenny. Есть лицензия ISPmanager Lite и собственно она и установлена. Проблема в том, что нужно как-то полностью отказаться от Apache2 и полностью перейти на Nginx с возможностью управления ей прямо из ISP (рестарт nginx, добавление доменов в ее папку и т.п.). Мучаюсь уже неделю, пробовал по разным мануалам в том числе и с хабра.
Хабровчане, вы единственные кто мне может подсказать решение. Заранее огромное спасибо за любую наводку.
Кому потестить сервак лоадимпактом?
Купил на сутки loadimpact.com/ до 1000 юзеров, мне всё это время не нужно, могу паре человек потестить что-нибудь.
Как средствами nginx определить есть ли в запросе знак вопроса?
На сайте ЧПУ, боты долбят страницы вида /?weqdw=14. Как средствами конфигурации nginx определить знак вопроса в запросе и отдать 444 ошибку?
Как сделать так, чтобы при заходе на domen1.tld:8080, отдавалось содержимое с domen2.tld:8080?
Задача такая, нужно сделать так, чтобы при запросе браузером адреса, к примеру domen1.tld:8080 отдавалось то, что находится на другом физическом компьютере/адресе, например domen2.tld:8080.
Дано:
— 2 компьютера (у обоих роутеры и ОС Debian);
— у первого IP статический, у второго динамический;
— доменное имя (domen1.tld), которое привязано к первому серверу (оно основное и должно быть привязано к первому серверу, по-этому вариант привязки его ко второму серверу или перенос сервиса со второго компьютера на первый, не предлагать) и второе доменное имя (domen2.tld) — динамически обновляемое вторым компьютером;
— на втором компьютере работает некий сервер, с основным доменом, вернее поддоменами, прописанными как SRV и CNAME — записи.
Нужно каким-либо образом сделать так, чтобы при коннекте на основной корневой домен — domen1.tld с портом 8080, коннект шел на второй компьютер и соответственно чтобы данные отдавал второй сервер на котором слушается порт 8080 — domen2.tld:8080.
— Пробовал через SRV-записи, вида:
_http._tcp.domen1.tld. IN SRV 0 5 8080 domen2.tld.<br/>
Но не получилось. «Проброса» не происходит… Браузер не показывает нужного…
Выслушаю любые варианты, но напомню, главный домен — IP статика, второй домен — динамически обновляется. Вариант переноса сервера/домена с первого на второй или наоборот не предлагать.
З.Ы. может быть, с помощью iptables можно это сделать как-то?
UPD: Вопрос частично решился, с помощью проксирования через nginx.
UPD: Вопрос окончательно решился.
Конфиг для Nginx'a для тех кому понадобится:
server {<br/>
listen 8080;<br/>
server_name domen1.tld <a href="http://www.domen1.tld;">www.domen1.tld;</a><br/>
location / {<br/>
proxy_pass <a href="http://domen2.tld">domen2.tld</a>:8080/;<br/>
proxy_redirect off;<br/>
proxy_set_header Host $host:$proxy_port;<br/>
proxy_set_header X-Real-IP $remote_addr;<br/>
}<br/>
}<br/>
_http._tcp.domen1.tld. IN SRV 0 5 8080 domen2.tld.<br/>server {<br/>
listen 8080;<br/>
server_name domen1.tld <a href="http://www.domen1.tld;">www.domen1.tld;</a><br/>
location / {<br/>
proxy_pass <a href="http://domen2.tld">domen2.tld</a>:8080/;<br/>
proxy_redirect off;<br/>
proxy_set_header Host $host:$proxy_port;<br/>
proxy_set_header X-Real-IP $remote_addr;<br/>
}<br/>
}<br/>
QT4: послать сигнал конкретному треду?
Предположим, например, что есть мессенджер — у него серверная часть и клиентская. Каждое клиентское подключение осуществляется в отдельном потоке (QThread). Каждый клиент имеет уникальный идентификатор (например e-mail адрес владельца).
Как я осуществляю передачу сообщения от одного клиента к другому сейчас: каждый тред подписывается на сигнал у сервера. Когда один клиент присылает сообщение, сервер выбрасывает сигнал и все треды смотрят на идентификатор своего клиента — тот тред, у кого он совпадает с адресатом, отправляет сообщение клиенту. Все просто и отлично работает, но у меня подозрения, что это несколько неправильно. Что если клиентов миллионы? Может быть есть более разумный способ?
P.S. Каждый тред имеет также уникальный числовой идентификатор, присваиваемый автоматически при создании. Можно писать в базу соответствие этого ИД и почтового адреса. Но опять же — как послать сигнал треду с конкретным ИД?
Воспроизведение аудио файлов с сервера без возможности их скачивания?
Для проекта потребовалось реализовать функцию, что бы можно было воспроизводить музыкальные файлы которые хранятся на сервер (через простой плеер что то вроде Uppod), без возможности их скачивания с него. Что-то на подобии SoundCloud.
Хотел бы получить хотя бы подсказку.
Кеширование в nginx?
Нужно средствами nginx закешировать на разное время адрес с get-параметрами и без:
/path/ — на 10 секунд;
/path/?something — на сутки.
Ключи кеша тоже должны быть разными (но с этим все ясно).
Можно ли это сделать? Nginx собран с модулем perl. Используется proxy_cache.
nginx, время отклика
После установки nginx как фронтенда к Apache график времени отклика стал вот таким (по мониторингу webopulsar):

До установки всё было ровно.
ОС — Ubuntu server 10.04, сайт на Yii (PHP) + APC включен. Загружено не более 50% оперативки, CPU не более 20%. VPS.
nginx.conf, proxy.conf
Идентифицировать пользователя на сайте по запущенной программе (не факт, что на том же компьютере)?
Задумался вот над такой загадкой. А возможно ли идентифицировать пользователя на сайте (заметьте, не аутентифицировать, а просто узнать кто это) ничего у него не спрашивая? Использовать можно Javascript AJAX, PHP, установленные программы на сервере и на компьютере клиента.
Т.е. есть, скажем, 10 человек. У них запущены клиенты, подключенные к серверу. Они заходят на сайт и кликают кнопку и клиент показывает надпись «You clicked!» только тому пользователю, который действительно только что кликнул эту кнопку.
Поначалу, я думал заставить пользователя вводить e-mail. Но ведь кто-то может ввести чужой e-mail и таким образом сообщение увидит не тот. Затем пришла в голову мысль сравнить IP клиента, подключенного к серверу и IP пользователя, зашедшего на сайт. Но возникает вопрос: а будут ли гарантированно эти адреса совпадать? Ответ нет, т.к. на сайт можно прийти под прокси, а клиент может не использовать прокси (или вообще быть запущенным на телефоне — такое тоже допускается, но допустимо затребовать указывать это при регистрации).
Так вот такая загадка хабросообществу: возможно ли вообще максимально простым пользователю способом (т.е. не обязывая его помнить пароль) узнать какой из запущенных клиентов принадлежит ему и вывести туда сообщение, без ложного вывода у других пользователей системы?
Cервис для обмена конфигами?
Вот вчера настраивал кеширование в nginx, столкнулся с некоторыми проблемами обработок ошибок и решил их. До этого я прочитал много мануалов на эту тему, но помогла, как обычно, документация ;)
Вот теперь я бы хотел поделиться этим конфигом с людьми и, возможно, услышать поправки.
PS Если такого сервиса нет, он был бы полезен тебе, %username%?
Авторизация через Loginza с помощью различных сервисов: Контакте, facebook и др?
Добрый день!
При авторизации через loginza, если я авторизуюсь с помощью различных сервисов: Контакте, facebook и др. имеем несколько локальных юзеров. (если, конечно я все правильно понял )) )
Есть дикое желание привязать различные способы авторизации на сайте к одному локальному пользователю.
Какие идеи по этому поводу?
UML reverse engineering for Java
Кто-нибудь может подсказать толковую бесплатную программу под linux для реверс-инженеринга джава файлов — для создания UML диаграмм?
Из более-менее работающего нашел плагин для NetBeans. Может быть, есть подобное для Eclipse? И вообще, интересно, кто чем пользуется для этого.
Спасибо.
Nginx & geoIP?
А можно ли как-то на уровне самого сервера производить редирект на основе страны посетителя?
Например, есть сервер-1 и сервер-2 — каждый из которых географически расположен в разных странах — страна-1 и страна-2. Можно ли на уровне конфига на сервере-1 отсылать пользователей из страны-2 на сервер-2 и аналогично на сервер-2 отсылать пользователей на сервер-1?
Все примеры, которые встречал требуют модификации скриптов сайта, а у меня сайты полностью статические и скриптов там нет вообще.
Раскидывание пользователей на уровне DNS не является хорошим решением — так как многие прописывают себе публичный DNS Google — таким образом полностью сбивая с толку bind.
Что случилось с сайтом loginza.ru?
В нескольких проектах был реализован вход через этот сайт. Пару дней назад у них закончился SSL сертификат. Теперь вообще на сайте и в виджете кидает mysql ошибку.
Я не знаю, стоит ли ждать восстановления сервиса, или начинать искать альтернативу.
LiteSpeed vs. Apache / nginx?
Выбираю новое место для сайта, предлагают установить платный LiteSpeed как альтернативу бесплатным Apache / nginx.
Естественно, на офсайте LiteSpeed пишут, что во много раз всё быстрее, безопаснее и лучше. А вот так ли это на самом деле?
Подскажите, есть ли смысл?
Как добавить службу Windows
Привет. Установил nginx на Windows XP, надо чтобы команда
start D:\Webserver\nginx-0.9.5\nginx.exe
Выполнялась при включении компьютера.
Насколько я понимаю надо создать службу =)
Nginx config, как?
Привет.
Надо составить правило location, но с nginx/perl знаком слабовато.
При обращении к /original/$ID. jpg|png|gif
Надо чтобы отдавалась картинка по пути
original/
последней символ md5($ID) /
первые 2 символа md5($ID) /
3 и 4 символ md5($ID). jpg|png|gif
ПО для мониторинга состояния сервера
Приветствую!
Коллеги, подскажите, может кто-нибудь сталкивался. Необходимо ПО для мониторинга текущего состояния сервера, желательно чтобы был вебинтерфейс, чтобы заказчик в режиме реального времени мог самостоятельно контролировать работу сервера. Сайт работает на FreeBSD.
Необходимо контролировать:
1. Состояние nginx/апача (работает/не работает, кол-во активных соединений)
2. Доступность сайта работающего под апач
3. Состояние PHP/MySQL
4. Загрузка ЦП / Расход потребляемой памяти (какими процессами)
Желательно наличие системы оповещений, в случае падения каких-либо жизненоважных служб и сервисов
Спасибо.
Анализ графиков загрузки и оптимизация web-сервера?
Добрый вечер, хабр. Прошу у вас помощи в анализе графиков загрузки сервера, и его оптимизации, думаю я что-то упускаю из вида, или просто не понимаю.
Предыстория: достался в наследство один сайт, расположенный на достаточно мощной vds(8 ядер, 16Gb RAM, Ubuntu Server), сделанный на joomla с несколькими компонентами, один из которых — активно используемый форум. Всё это работало на чистом Apache+MySQL(подавляющее большинство таблиц в MyISAM). Вечером, когда на сайт приходит большое количество человек, он периодически перестаёт отвечать на запросы, т.е. по ssh зайти можно нормально, и работать в консоли, но сам сайт, если и открывается, то очень медленно. В такие моменты LA был около 14-16.
Первым делом я настроил фронтэнд(nginx), для отдачи статики и проксирования остального на апач, и поставил memcached, в котором джумла начала хранить кэш. После этого LA в пиках стал около 4. Какое то время сайт работал нормально, но через несколько дней снова начались проблемы. (LA 8-9+)
В этот раз я решил копать глубже, и, для начала, поставил munin для наблюдения за системой. Затем я установил APC, настроил размер кэша опкода так, чтобы он не переполнялся, попробовал использовать его как хранилище кэша джумлы, но испугался появившейся 100%ной фрагментации, и вернул кэш в memcached. Также я прогнал БД tuningprimer'ом, воспользовался рекомендациями, сделал больше table_cache и open_files_limit, добился того, чтобы кэша хватало. После всего этого максимальный замеченный сегодня LA был равен 5, но пользователи жаловались, что некоторое время сайт был недоступен.
В связи с этим у меня вопрос к хабрасообществу: что ещё можно сделать в этой ситуации и в какую сторону смотреть? Насколько я могу понять, проблему создаёт большое количество запросов к БД, многие даже в slow-log попадают, но что-то сделать с запросами можно только сильно залезая в код компонентов, что хочется делать только в крайнем случае. Какие графики и конфиги показать для лучшего понимания ситуации?
UPD: В планах — попробовать избавиться от apache, оставить только nginx + php-fpm. Нормально ли будет работать APC с такой связкой, и поможет ли мне вообще она?
Подскажите как изменить расширение файла изображения на ".webp", при условии, что файл с расширением webp существует.
Здравствуйте!
запрашивается файл с расширением jpeg или jpg или png
Подскажите как изменить расширение файла изображения на ".webp", при условии, что файл с расширением webp существует.
set $ext "";
if ( $http_accept ~* webp ) {
set $ext ".webp";
}
if ( $request_filename ~ (.+)\.(jpg|jpeg|gif|png|ttf|woff|woff2)$ ) {
set $file_without_ext $1;
}
set $filenew "{$file_without_ext$ext}";
location ~* .+\.(jpg|jpeg|gif|png|ttf|woff|woff2)$ {
expires 30d;
if ( -f $filenew) {
rewrite ^(.+)\.(png|jpe?g)$ $1$ext;
}
try_files $uri @apache2;
}
location ~* ^(?!/mysql/).+\.(webp|heic|jpg|jpeg|gif|png|svg|js|css|mp3|bmp|swf|ogg|mpe?g|avi|zip|gz|bz2?|rar|ico|html|htm|txt|ttf|woff|woff2)$ {
expires 30d;
try_files $uri @apache2;
}
1657   0   15:26, 5th January, 2022