Как переписать строки запроса в URL (\img?src=foo.jpg) в реализуемые URL (\img-foo.jpg)?

Мой опыт состоит в том что моя задача высокого количества процесса, с которой только следуют:

kern.maxproc=2500  # This is as big as I could set it.

kern.maxprocperuid=2048

ulimit -u 2048

Первые два могут войти /etc/sysctl.conf и ulimit оценивают в launchd.conf для надежной установки.

Так как tcp/ip был частью того, что я делал, я также должен был натолкнуться

kern.ipc.somaxconn=8192

от его значения по умолчанию 128.

Прежде чем я увеличил пределы процесса, я получал отказы "ветвления", недостаточно ресурсов. Прежде чем я увеличил kern.ipc.somaxconn, я получал "поврежденный канал" ошибки.

Это было при выполнении достаточного количества (500-4000) из отдельных процессов на моем монстре Mac, ОС 10.5.7, затем 10.5.8, теперь 10.6.1. В соответствии с Linux на компьютере моих боссов это просто работало.

Я думал, что количество процессов будет ближе к 1 000, но кажется, что каждый процесс, который я запустил, включал свою собственную копию оболочки в дополнение к фактическому объекту, делающему фактическую работу. Очень праздничный.

Я записал игрушку дисплея, которая пошла что-то как:

#!/bin/sh

while[ 1 ]

do

    n=netstat -an | wc -l

    nw=netstat -an | grep WAIT | wc -l

    p=ps -ef | wc -l

    psh=ps -ef | fgrep sh | wc -l

    echo "netstat: $n   wait: $nw      ps: $p   sh: $psh"

    sleep 0.5

done

и наблюдаемый максимальное количество процессов в PS-ef и бродящий вокруг в netstat, ожидающем TIME_WAIT истечь... С повышенными пределами я видел 3500 + TIME_WAIT объекты на пике.

Прежде чем я повысил пределы, я мог 'красться' на пороговом значении отказа, которое началось ниже 1K, но повысилось до высокого значения 1190.. каждый раз это было продвинуто в отказ, который это могло взять немного в более следующий раз, вероятно, из-за чего-то кэшировался, который расширился до его предела каждый раз, когда это перестало работать.

Хотя мой тестовый сценарий имел "ожидание" как свой заключительный оператор, там было все еще МНОГО отдельных процессов, бродящих вокруг после того, как он вышел.

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

0
задан 6 December 2010 в 03:50
2 ответа

Правило

RewriteRule ^/imgcpu\?src=(.+)&w=(.+)&h=(.+)&c=(.+)&q=(.+)$ /IMG-$1_w-$2_h-$3_c-$4_q-$5

Будет иметь дело с первым случаем, проблема состоит в том, что Вам было бы нужно намного более сложное РЕ для контакта с различиями на второй и третьей строке (пропавшие без вести q и p части URL, дополнительного s переменная, и т.д.).

Для предотвращения путаницы долгого и регулярного выражения только для записи, я сделал бы одно другое правило для каждого из этих трех случаев.

1
ответ дан 4 December 2019 в 22:41
  • 1
    :D, теперь обновляющий вопрос. Я в двуязычной ситуации dyslectic извините, я имел в виду CoreDump :D –  Sam 6 December 2010 в 03:51
  • 2
    Daer CoreDump, я переместил вторую часть, которая является намного более трудным дополнительным вопросом, к другому вопросу, после вознаграждения Вас ответ для этой части. serverfault.com/questions/209437 / … –  Sam 6 December 2010 в 04:23
RewriteRule ^IMG-(.+)_w-(.+)_h-(.+)_c-(.+)$ imgcpu\?src=$1&w=$2&h=$3&c=$4 [L]
RewriteRule ^IMG-(.+)_w-(.+)_h-(.+)_f-(.+)$ imgcpu\?src=$1&w=$2&h=$3&f=$4 [L]   
RewriteRule ^IMG-(.+)_w-(.+)_h-(.+)$ imgcpu\?src=$1&w=$2&h=$3 [L]
RewriteRule ^IMG-(.+)_w-(.+)$ imgcpu\?src=$1&w=$2 [L]
RewriteRule ^IMG-(.+)_h-(.+)$ imgcpu\?src=$1&h=$3 [L]
# pfff endless possibilities!!

И это даже не покрывает случаи, где сначала высоте дают ширину. Нет это не должно работать!

Позволяет находят решение перенаправить весь ДОПОЛНИТЕЛЬНЫЙ &w = или &h = с чем-то как и [a-z] = (.*), sothat _h-или _w-универсальны, и не имеет значения, что буква там _c-или _q-, которому что-либо могло затем соответствовать. ЭТО было бы очень желанным, переписывают.

Между тем это делает работы!!

<img src"/IMG-folder/photo_w100_h100_cf_q60.jpg"/>

при помощи:

RewriteRule ^IMG-(.+)_w(.+)_h(.+)_c(.+)_q(.+).jpg$ 
            imgcpu\?src=$1\.jpg&w=$2&h=$3&c=$4&q=$5 [L]

Таким образом, присвоение Теперь:
Перепишите любые из запросов, которые следуют [photo123.jpg]&[a-z]=(.*)&[a-z]=(.*)etcettera в photo123_X-x_Y-y(optionally more queries).jpg

0
ответ дан 4 December 2019 в 22:41

Теги

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