ведущий результат источника нажатия мерзавца: REJECTED_OTHER_REASON

Для поддержания кэша, необходимо смочь определить местоположение объектов на основе URL и возраста (последний для того, чтобы убрать файлы LRU). Используя необработанные файлы поэтому необходимо было бы поддержать дополнительный индекс или больше чем одну ссылку на фактический файл данных. Вы также получили сложность, что необходимо распределить файлы равномерно через каталоги для поддержания эффективности в получении содержания - например, Вы могли бы использовать md5 хеш URL для генерации пути к файлу содержания / метаданные.

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

Другая вещь, о которой необходимо думать, состоит в том, как обработать обновления - как это сделано, во многом зависит от того, как Вы реализуете прокси-сервер - как сервер STDIO, работающий от inetd, разветвления, или распараллелили сервер или единственный потоковый сервер. За исключением однопоточного сервера, существует возможность, что 2 запроса на то же содержание, не доступное от локального кэша, могут обрабатывать одновременно - но Вы только хотите, чтобы прокси относился к источнику однажды. Используя DBMS в бэкенде позволяет Вам намного больше гибкости по обработке блокировки / параллельный доступ.

Вы рекомендуете поместить данные по отдельному серверу или NAS

а? Вы имеете в виду, сохраняют устройство хранения данных в отдельной системе от прокси? С какой стати Вы сделали бы это? Ваши просто добавляющие дополнительные задержки с доступом к содержанию. И доступ к файлам базы данных по сети никогда не является хорошей идеей.

Однако это все повторно предполагает, что Вы намереваетесь писать свое собственное программное обеспечение. Если Вы хотите сделать это только для забавы (?) затем, часть процесса обучения программировать исследует эти проблемы сами - и тестирует разные подходы - выяснение у кого-то еще, как они записали бы, что это не помогает Вам узнать о проблемах. OTOH, если Вам просто нужно решение проблемы, почему бы не использовать один из доступных пакетов с открытым исходным кодом - сквид, очень хорош.

1
задан 13 March 2013 в 05:29
1 ответ

Проблема в том, что у вас есть master , зарегистрированный на сервере, поэтому вы не можете отправить master на сервер. Есть три различных способа справиться с этим:

Правильный способ - начать все сначала с - чистого репозитория, если вы собираетесь работать удаленно. У пустых репозиториев нет «рабочего дерева» / рабочего каталога, что означает, что в репозитории никогда не будет никаких ветвей, извлеченных на самом сервере. См. FAQ Git :

никогда не вставляйте в репозиторий, к которому прикреплено дерево работ, пока не узнаете, что делаете.

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

Hard Way требует, чтобы вы создали триггер, который сбрасывает ваш рабочий каталог на сервере (вы потеряете все незафиксированные изменения на сервере) (пример триггерного сценария оболочки здесь ) и настройте git, чтобы отключить ошибку, которую вы получили с git config receive.denyCurrentBranch ignore . Используется, когда вы используете git для веб-страницы, которую редактируете удаленно . Опять же, см. FAQ выше, если вы только отключите ошибку и не настроите обработчик post-receive, ваше рабочее дерево не будет обновлено за вас, и вам придется git reset --hard на сервер, если вы хотите увидеть загруженные вами файлы.

я никогда не буду пытаться нажимать с клиента.

Hard Way требует, чтобы вы создали триггер, который сбрасывает ваш рабочий каталог на сервере (вы потеряете все незафиксированные изменения на сервере) (пример сценарий оболочки запуска здесь ) и настройте git, чтобы отключить ошибку, которую вы получили с помощью git config receive.denyCurrentBranch ignore . Используется, когда вы используете git для веб-страницы, которую редактируете удаленно . Опять же, см. FAQ выше, если вы только отключите ошибку и не настроите обработчик post-receive, ваше рабочее дерево не будет обновлено за вас, и вам придется git reset --hard на сервер, если вы хотите увидеть загруженные вами файлы.

Я никогда не буду пытаться отправлять запросы от клиента.

Hard Way требует, чтобы вы создали триггер, который сбрасывает ваш рабочий каталог на сервере (вы потеряете все незафиксированные изменения на сервере) (пример сценарий оболочки триггера здесь ) и настройте git, чтобы отключить ошибку, которую вы получили с помощью git config receive.denyCurrentBranch ignore . Используется, когда вы используете git для веб-страницы, которую редактируете удаленно . Опять же, см. FAQ выше, если вы только отключите ошибку и не настроите обработчик post-receive, ваше рабочее дерево не будет обновлено для вас, и вам придется git reset --hard на сервер, если вы хотите увидеть загруженные вами файлы.

Hard Way требует, чтобы вы создали триггер, который сбрасывает ваш рабочий каталог на сервере (вы потеряете все незафиксированные изменения на сервере) (пример сценарий оболочки триггера здесь ) и сконфигурируйте git, чтобы отключить ошибка git config receive.denyCurrentBranch ignore . Используется, когда вы используете git для веб-страницы, которую редактируете удаленно . Опять же, см. FAQ выше, если вы только отключите ошибку и не настроите обработчик post-receive, ваше рабочее дерево не будет обновлено за вас, и вам придется git reset --hard на сервер, если вы хотите увидеть загруженные вами файлы.

Hard Way требует, чтобы вы создали триггер, который сбрасывает ваш рабочий каталог на сервере (вы потеряете все незафиксированные изменения на сервере) (пример сценарий оболочки триггера здесь ) и сконфигурируйте git, чтобы отключить ошибка git config receive.denyCurrentBranch ignore . Используется, когда вы используете git для веб-страницы, которую редактируете удаленно . Опять же, см. FAQ выше, если вы только отключите ошибку и не настроите обработчик post-receive, ваше рабочее дерево не будет обновлено за вас, и вам придется git reset --hard на сервер, если вы хотите увидеть загруженные вами файлы.

2
ответ дан 3 December 2019 в 21:35

Теги

Похожие вопросы