All streams
Search
Write a publication
Pull to refresh
52
0

User

Send message
Не очень понятно, при чем к первым двум FreeBSD — ведь это проблемы в сторонних программах?
Mail относится ко всем как к говну — и к своим пользователям, и к владельцам сторонних серверов, которым приходится отправлять туда почту.
На висте — не работает :(
В смысле? Пишите так:
<рrе>
server 
{
    location /
    {
        proxy_pass http://ya.ru/;
    }
}
</рrе>
Когда увидел слово «Мускульный», подумал, что речь идет о MySQL :(
Тогда это баг :(
Когда вернусь с отдыха, попробую воспроизвести на последней версии.
* например, 0.7.52
Исправление: корректная обработка метода HEAD при кэшировании.
Это баг, от использования старого nginx :-P

sysoev.ru/nginx/changes.html — 0.7.48,
Исправление: теперь nginx кэширует только ответы на запросы GET.

К слову, в дальнейших версиях очень многое по кешированию было исправлено.
А он когда-то не умел? о_О
Парсер — лох, съел < рrе > как тег :(
Правильно — так:

if ($request_method = POST ) — не нужно, пост не кешируется автоматически.
Не нужно использовать старый nginx, лучше использовать новый nginx. Он лучше, в нем меньше багов и больше функционала.
Конфиги заключайте в <рrе> < соdе >, меня это спасало.

<зануда> В конфиге куча повторяющихся мест. proxy_add_header лучше вынести на уровень server или вынести вместе с proxy_pass в отдельный файл, подключаемый через include. Получается намного удобнее, честно :) </зануда>
if ($request_method = POST ) — не нужно, пост не кешируется автоматически.
Не нужно использовать старый nginx, лучше использовать новый nginx. Он лучше, в нем меньше багов и больше функционала.
Конфиги заключайте в
< code >, меня это спасало.
<зануда> В конфиге куча повторяющихся мест. proxy_add_header лучше вынести на уровень server или вынести вместе с proxy_pass в отдельный файл, подключаемый через include. Получается намного удобнее, честно :) </зануда>
>Но оказывается, что сделать сортировку со сложностью O(n) в общем случае просто не возможно
Немного не согласен. Это не возможно лишь при сортировке сравнением, но весьма возможно при поразрядной или сортировке подсчетом.

А еще есть наивный алгоритм за O(n*n!) :-)
Увы, в терминах debian я не умепю оперировать :) 0.8 — текущая версия, 0.7 — старая версия. 0.7 не развивается, в нее только раз в N времени бекпортятся исправления багов, найденных во время разработки 0.8. Если Вы найдете в 0.7 баг, то его исправят в 0.8 :)
Я использую последнюю ветку все время, таких уж страшных проблем, как при использовании бета-ПО, никогда не имел.
0.7.64 — старая. Попробуйте так, но не уверен. Если не будет работать, как надо — сообщите, посмотрим еще :)
<code>
location = /subdir/index.php
{
    root /var/www/example.com/www;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param script_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param QUERY_STRING $query_string;
    fastcgi_param REQUEST_METHOD $request_method;
    fastcgi_param CONTENT_TYPE $content_type;
    fastcgi_param CONTENT_LENGHT $content_length;
    include fastcgi_params;
}
location ~ /subdir/(.*)$
{
    root /var/www/example.com/www;
    try_files $uri /subdir/iindex.php?/$1;
}


Есть вариант переделать скрипт, чтобы он принимал не то, что после subdir, а весь путь, и написать тогда вот так:
<code>
location = /subdir/index.php
{
    root /var/www/example.com/www;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param script_FILENAME $document_root/subdir/index.php;
    fastcgi_param QUERY_STRING $request_uri;
    fastcgi_param REQUEST_METHOD $request_method;
    fastcgi_param CONTENT_TYPE $content_type;
    fastcgi_param CONTENT_LENGHT $content_length;
    include fastcgi_params;
}
location ~ /subdir/(.*)$
{
    root /var/www/example.com/www;
    try_files $uri @fallback;
}


А это только теория?
Есть ли «история успеха», подтверждающая эти идеи? Описание каких-то подводных камней?
Написал в саппорт 3 Декабря в 3:53, 6 Декабря в 16:59 получил просьбу уточнить информацию :)
Мне кажется, что в программе, которая только и делает, что работает со строками, будет столько возросшее количество занимаемой памяти. Я почти полностью уверен, что дело в переходе с ubuntu на debian. Отключите ненужные модули, почитайте man о mpm и сделайте новый, улучшенный замер.

ЗЫ. А вообще, если так дорога память — переходите на nginx+php-fpm. 150 воркеров в 2гб памяти помещаются спокойно. RES eу каждого — 10-20mb на 64битной машине,
location ~* ^/([^/]*)\.(avi|mp4|mkv|wma|flv|wmv|mpg|mpeg|mp3|rar|zip|7z)$ {
    if ($invalid_referer) {
        return 403;
    }
    прочее
    add_header Content-disposition "attachment;filename=$1.$2";
}

Насколько я понимаю, как-то так.
Можно попробовать
proxy_cache_use_stale http_502 http_503 http_504;
proxy_cache_valid 0;
Какой ужас :-)

location ~* /forum/(.*)\.php$
{
    proxy_pass ;
    if ($country = 'en') { return 404; }
}

location ~* /forum/
{
    if ($country = 'en') { return 404; }
}

location ~* "/forum/(.*)\.(jpg|jpeg|gif|png|bmp|ico|swf|flv|css|txt|xml|rss|js)$"
{
    expires max;
    if ($country = 'en') { return 404; }
}
.

Еще можно сделать вложенными location, намного красивее:
<code>location /forum
{
    if ($country = 'en') { return 404; }
    location ~ \.php$
    {
        proxy_pass ...;
    }
    location ~* "\.(jpg|jpeg|gif|png|bmp|ico|swf|flv|css|txt|xml|rss|js)$
    {
        expires max;
    }
}</code>

Information

Rating
Does not participate
Registered
Activity