BIND Ведущее устройство DNS с Ведомыми устройствами Zerigo - BIND не обновит ведомые серверы

С тех пор imgcpu [.php] может быть изменен, вот мой ответ для чистки этого даже при том, что это собирается отменить большую ту работу, которую Вы сделали

В рамках программы можно циклично выполниться по всем возможным атрибутам и извлечь, какой бы ни присутствуют (в любом порядке!). Можно заменить все те правила с единственным правилом:

RewriteRule ^IMG-(.*)$ imgcpu\?parse=$1 [L]

и затем в imgcpu сценарии, у Вас был бы "синтаксический анализ" как переменное, содержащее folder1/some_funny_kitty_w3500_h10_cp_q90.jpg. Удалите расширение из конца, имени папки и имени файла с начала, и затем можно циклично выполниться через различные параметры и извлечь их из строки. Что-то как (PHP, но понятие может быть сделан на любом языке. Вы могли бы даже сохранить некоторых мс путем выполнения его без regexes):

$values["q"]=50; // Set some defaults?
foreach (array("h","w","q","c","f") as $param) {
   if (preg_match("/_${param}([^_]+)/",$_REQUEST["parse"],$result)) {
     $values[$param]=$result[1];
   }
}

В конце $values["h"] имел бы высоту. Это было бы тонной, легче поддержать, если Вы когда-нибудь хотите добавить новые параметры. Вам было бы нужно немного работы для выяснения то, что Вы, как предполагается, делаете с "my_w2000_desktop_w200_h100.jpg" (или хуже: "my_w2000_desktop_h100.jpg" или еще худший "desktop_for_w2000_h100.jpg"), но если Вы запрещаете людям иметь двойные подчеркивания в именах файлов, Вы могли бы использовать двойные подчеркивания для разделения имени файла от опций (например, "my_w2000_desktop__h100.jpg") и разделять строку там (обратите внимание, что regexes выше требуют, чтобы каждая опция запустилась с _ символ),

Более легкая опция

Если можно принять не кодирование параметров в самом имени файла (это могло бы привести ко всем имеющим изображения совершенно других размеров все названные "some_funny_kitty.jpg"), затем парсинг может быть сделан тривиальным. Это использовало бы URL как http://example.com/IMG/w200/h100/folder1/my_w2000_desktop.jpg. Удалите "-" из RewriteRule (просто ^IMG(.*)$, и измените парсинг в PHP:

$parts=explode("/",$_REQUEST["parse"]);
$filename=array_pop($parts);
$folder=array_pop($parts);
foreach ($parts as $field) {
  $param=substr($field,0,1);
  $setting=substr($field,1); // assuming settings are always one letter followed by value
  $values[$param]=$setting;
}

Если это приемлемо, Вы можете устранять mod_rewrite полностью: Используйте URL формы

http://example.com/imgcpu/w200/h100/folder1/my_w2000_desktop.jpg

и Apache выполнится imgcpu с PATH_INFO набор переменной среды к /w200/h100/folder1/my_w2000_desktop.jpg ($_SERVER["PATH_INFO"] в PHP). Это хорошо работает для меня, но я видел, что некоторые сообщения жалуются, что в определенных средах PATH_INFO повреждается.

0
задан 16 April 2012 в 13:40
1 ответ

Что нужно проверить:

  1. Проверить, что сообщения уведомлений не отключены ( notify необходимо оставить по умолчанию («да») или установить на «да» или « явный ")
  2. Если вы являетесь скрытой основной установкой (которая, похоже, могла бы быть) named не будет отправлять уведомление на главный сервер, указанный в зоне SOA, если вы не укажете его в also-notify или set notify-to-soa
  3. Как было предложено выше, может быть лучше просто перечислить серверы, о которых вы хотите получать уведомления, в операторе also-notify , чтобы не было двусмысленности.
  4. ] Убедитесь, что вы обновляете серийный номер в SOA при внесении изменений в зону. Это очень распространенная ошибка. После получения уведомления ведомое устройство выполнит запрос SOA для зоны, чтобы определить, требуется ли ему AXFR. Если у него уже есть такой же серийный номер, он сочтет ненужным повторный перенос зоны. Вы должны увеличить серийный номер, если хотите, чтобы подчиненные устройства работали с AXFR без необходимости вручную запускать его.
  5. Судя по выдержке из вашего файла журнала, это не относится к вам, потому что у вас, похоже, все правильно разрешено чтобы разрешить AXFR, но в интересах других, у которых могут быть похожие проблемы, подчиненным серверам обычно необходимо явно разрешить выполнение запросов AXFR (с помощью директивы allow-transfer ).
1
ответ дан 4 December 2019 в 21:51

Теги

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