|
Организация доступа к SSH и HTTPS через один 443 порт при помощи nginx (доп. ссылка 1) |
[комментарии]
|
| В nginx 1.15.2 в модуль ngx_stream_ssl_preread была добавлена переменная $ssl_preread_protocol, которая определяет наибольшую версию протокола SSL/TLS, которую поддерживает клиент. При помощи новой переменной можно создавать конфигурации для доступа с использованием различных протоколов через один сетевой порт при проксировании трафика с использованием модулей http и stream. В частности, можно разделять обработчики для трафика на базе SSL и не использующего SSL (например, SSH).
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Перенаправление на HTTPS при помощи HSTS в Apache, NGINX и Lighttpd (доп. ссылка 1) |
[комментарии]
|
| Протокол HSTS (HTTP Strict Transport Security) позволяет администратору сайта указать на необходимость обращения только по HTTPS и автоматизировать проброс на HTTPS при изначальном обращении по ссылке на HTTP. Управление производится при помощи HTTP-заголовка Strict-Transport-Security, который выдаётся при обращении по HTTPS (при выдаче по HTTP заголовок игнорируется) и указывает браузеру на необходимость оставаться в зоне HTTPS даже при переходе по ссылкам "http://". Замена http:// на https:// будет автоматически выполняться при обращении к защищаемому ресурсу с внешних сайтов, а не только для внутренних ссылок.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Запуск qdPM под управлением nginx через php-fpm (доп. ссылка 1) |
Автор: viking-coyote
[комментарии]
|
| Для использование системы управления проектами qdPM совместно с nginx можно
использовать следующие настройки:
root /путь/до/qdpm;
location / {
index index.php;
allow <разрешаем коекому>;
deny all;
}
location ~ ^(.+\\.php)(.*)$ {
fastcgi_pass unix:/tmp/php-fpm.socket;
fastcgi_split_path_info ^(.+\\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param QUERY_STRING $query_string;
include fastcgi_params;
}
|
|
|
|
|
Автоматическое реплицирование статики между несколькими web серверами средствами nginx |
Автор: Gara
[комментарии]
|
| На нескольких серверах время от времени появляется новые файлы, при этом заранее не известно на каком именно сервере появится новый файл. Клиенты в случайном порядке попадают на все серверы.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Организация в Lighttpd переброса на страницу в зависимости от языка пользователя (доп. ссылка 1) |
[обсудить]
|
| Для организации редиректа на определенную страницу с учетом выбранного в настройках браузера пользователя языка, в Lighttpd можно использовать модуль mod_magnet, позволяющий определить логику обработки запроса через простой скрипт на языке Lua:
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Редирект в зависимости от домена в nginx (доп. ссылка 1) |
Автор: Kirill Korinsky
[комментарии]
|
| Пример организации редиректа, в зависимости от домена, на какой-то раздел сайта.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Создание SSL прокси при помощи lighttpd |
Автор: Sergey Shkuratov
[комментарии]
|
| Возникла необходимость сделать на lighttpd балансирующий ssl-прокси к веб-серверу под управлением Apache.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Пример привязки к географическому положению посетителя в nginx (доп. ссылка 1) |
Автор: alexkbs
[комментарии]
|
| Для начала, следует прочитать о директивах модуля ngx_http_geo_module:
http://sysoev.ru/nginx/docs/http/ngx_http_geo_module.html
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Замена содержимого отдаваемых Apache2 документов, по заданной маске (доп. ссылка 1) |
[комментарии]
|
| Для автоматической замены, при отдаче html страниц, одного блока на другой
можно использовать mod_substitute (http://httpd.apache.org/docs/2.2/mod/mod_substitute.html).
Маска замены задается в виде регулярного выражения.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Блокирование автоматических качалок через mod_rewrite (доп. ссылка 1) |
[комментарии]
|
| RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Как в Apache использовать скрипт для обработки части пути (доп. ссылка 1) |
Автор: Rodriges
[обсудить]
|
| Есть скрипт http://domain.ru/art, для того чтобы запрос http://domain.ru/art/something
не вызывал ошибки и приводил к запуску этого скрипта в настройках Apache 2 нужно прописать:
<FilesMatch "^art">
AcceptPathInfo On
</Files>
Для Apache 1.3, можно воспользоваться
ErrorDocument 404 /cgi-bin/art.cgi
Или
<Location /art>
SetHandler cgi-script
</Location>
Или
RewriteEngine on
RewriteRule ^/art/(.*)$ /home/user/cgi-bin/art.cgi?$1 [T=application/x-httpd-cgi,L]
|
|
|
|
|
Как более эффективно блокировать несколько IP в apache (доп. ссылка 1) |
[комментарии]
|
| При наличии IP в blacklist.txt, посетителю показывается sorry.html:
RewriteEngine on
Rewritemap ipmap txt:/path/to/blacklist.txt
RewriteCond ${ipmap:%{REMOTE_ADDR}} =b
RewriteCond %{request_uri} !=/sorry.html
RewriteCond %{request_uri} !=/stylesheet.css
RewriteRule .* /sorry.html [R,L]
/path/to/blacklist.txt
11.22.33.44 b
22.33.44.55 b
33.44.55.66 b
|
|
|
|
|
Пример mod_rewrite редиректа при условии наличия файла |
[обсудить]
|
| Существует множество файлов вида http://www.host.ru/test/dirN/M.html и
http://www.host.ru/test/dirN/new/M.html (N=1,2..., M=1,2..)
Необходимо, если установлена cookie shownew=on и присутствует файл
/test/dirN/new/M.html прозрачно отображать
его содержимое, а не файла /test/dirN/M.html, который показываем если
/test/dirN/new/M.html отсутствует.
RewriteEngine on
RewriteCond %{HTTP_COOKIE} ^.*shownew=on.*$
RewriteCond %{REQUEST_URI} ^/test/([a-z]+[0-9]+)/([0-9]+\.html)$
RewriteCond /home/host/htdocs/test/%1/new/%2 -f
RewriteRule ^/test/([a-z]+[0-9]+)/([0-9]+\.html)$ /home/host/htdocs/test/$1/new/$2 [L]
|
|
|
|
|
Как в mod_rewrite организовать прозрачный переброс на CGI скрипт |
[обсудить]
|
| Вместо test.shtml?parm=N выдаем результат работы /cgi-bin/test.cgi?param=1
RewriteCond %{REQUEST_URI} /test.shtml
RewriteCond %{QUERY_STRING} param=[0-9]+
RewriteRule ^(.+) $1/%{QUERY_STRING} [C]
RewriteRule ^/test.shtml/param=([0-9]+) /home/user/cgi-bin/test.cgi?param=$1 [T=application/x-httpd-cgi,L]
|
|
|
|
|
Можно ли произвести редирект на другую страницу без использования mod_rewrite |
[комментарии]
|
| Можно воспользоваться директивой Redirect из mod_alias:
Redirect /dir1 http://test.ru/dir2
Redirect permanent /dir1/ http://test.ru/dir2
RedirectMatch ^/$ http://test.ru/new.html
RedirectMatch .* http://test.ru/new.html
RedirectMatch (.*)\.gif$ http://test.ru$1.jpg
AliasMatch ^/img/(.*) /home/user1/img/$1
|
|
|
|
|
Как разрешить скачивать картинки с текущего сайта и запретить выкачивание через чужие линки. |
Автор: uldus
[комментарии]
|
| RewriteEngine On
RewriteCond %{REQUEST_URI} /img/
RewriteCond %{HTTP_REFERER} !^.*somedom\.ru.* [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .* /empty.gif [L]
|
|
|
|
|
Выдача страницы в Apache в зависимости от языка |
Автор: Belousov Oleg
[комментарии]
|
| есть диры:
sub_host1/ru
sub_host1/en
sub_host2/ru
sub_host2/en
при обращении к www.somehost.ru/sub_host1 (и 2) должнен быть переход в дир со своим языком.
-- cgi-bin/redir.pl --
#!/usr/bin/perl
use CGI qw/:standard/;
($lang) = $ENV{HTTP_ACCEPT_LANGUAGE} =~ /(.?.?)/;
($redirurl) = param('redirurl');
$lang='en' if !( -d $ENV{DOCUMENT_ROOT}.$redirurl.$lang);
print redirect(-url=>$redirurl.$lang.'/');
-- httpd.conf --
RewriteEngine On
RewriteRule ^(/sub_host1/)$ /cgi-bin/redir.pl?redirurl=$1 [R,NE]
RewriteRule ^(/sub_host2/)$ /cgi-bin/redir.pl?redirurl=$1 [R,NE]
</VirtualHost>
|
|
|
|
|
Как организовать прозрачный редирект на другую страницу |
[комментарии]
|
| redirect /catalog http://new_host/new_catalog
или с mod_rewrite:
RewriteCond %{HTTP_HOST} ^www.host1.ru$ [NC]
RewriteRule (.*) http://www.host2.ru:8200$1 [R=permanent,L]
|
|
|
|