Архив рубрики: www

get запрос к сайту из консоли

Иногда бывают моменты, когда нужно протестировать работоспособность сайта из консоли. Для этого не нужно ставить X11, браузеры, а достаточно обычного telnet-клиента и openssl (для проверки https).

Проверка http

$ telnet XXX.XX.XX.XXX 80
...
GET / HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
...

Проверка https

$ openssl s_client -connect XXX.XX.XX.XXX:443
... connection information will be displayed ...
GET / HTTP/1.1
Host: www.example.com
...

А если нужно проверить работу SNI, то можно использовать такую конструкцию:

$ openssl s_client -connect <address> -servername <name>

Ставим Selenuim на Solaris/Linux

Что такое Selenuim — можно прочитать на wiki. Здесь опишу только установку

Тестовый стенд: Solaris 11.1 x86, selenium-server-standalone-2.30.0, Debian linux 7.2

Скачиваем selenium-server-standalone с официального сайта http://selenium.googlecode.com/files/selenium-server-standalone-2.30.0.jar в папку /opt/selenium.

Читать далее

[nginx] online upgrade

Nginx становиться с каждым днём всё популярнее и популярнее. И вот, недавно обнаружил тот факт, что мы можем обновить nginx вообще без downtim’a и restart’a. Этим может похвастаться не каждый продукт.

Тестовый стенд: FreeBSD 9.0 Release amd64, nginx-1.2.3 (в последствии ставший 1.2.6)

Читать далее

Пробрасываем ftp в локалку

Иногда бывают моменты, когда нужно заставить «видеть» локальный ftp снаружи. Как правильно подойти к этому вопросу? Нормально ли будет он работать за NAT’ом? Для того, что бы ftp нормально работал, нужно выполнение таких условий

1) Только пассивный режим работы самого FTP-сервера
2) Указать диапазон портов для пассивной передачи (passive ports range)
3) Проброс портов должен соответствовать 1:1 (то есть для passive ports range 5000:5099 пробрасываться они должны тоже в порты 5000:5099)

После этого можно спокойно «пробрасывать» в локалку passive ports range + 21-ый. При этом, 21-ый не обязательно снаружи должен быть 21-ым, а вот portrange — должны соответствовать 1:1.

Вот как это выглядит на примере файервола pf:

rdr on $ext_if proto tcp from any to $ext_if port 21 -> 10.10.10.10 port 21
rdr on $ext_if proto tcp from any to $ext_if port 5000:5099 -> 10.10.10.10 port 5000:5099

Естественно, так же нужно в самом файерволе разрешить подключение на указанные порты.

FTP FXP или сливаем файлы с одного FTP на другой, без участия промежуточного PC пользователя

FXP (англ. File eXchange Protocol — протокол обмена файлами) — способ передачи файлов между двумя FTP-серверами напрямую, не закачивая их на свой компьютер. При FXP-сессии клиент открывает два FTP-соединения к двум разным серверам, запрашивая файл на первом сервере, указывая в команде PORT IP-адрес второго сервера.

Читать далее

Сборка модуля php pdo_mysql

Представим себе ситуацию: mysql у вас стоит на одной машине, а php — на другой. И вам нужно добавить поддержку pdo_mysql в php. Тянуть mysql на машину с php не надо, достаточно лишь создать каталог /usr/mysql и в нём такие каталоги:

lib/mysql — сюда скопировать либы libmysqlclient.so и libmysqlclient_r.so
bin — сюда скопировать mysql_config
include — сюда скопировать заголовочные файлы

Этого достаточно, что бы собрать pdo_mysql.

Тестовый стенд: Solaris 11, php-5.4.3 (php установлен в /usr/php54)

Читать далее

nginx(frontend)+apache(backend)

Рассмотрим довольно популярную связку Apache+Nginx для снижения нагрузки на сервер. Так же, хочу заметить, что данная статья учитывает virtual hosts, а не отдельно хостящийся сайт (для такого сайта статья тоже подойдёт)

Читать далее

[nginx] Ошибки nginx’a

[error] upstream timed out (Operation timed out) while reading response header from upstream

Эта ошибка появляется тогда, когда страница генерируется больше времени, чем установленный timeout front-end’a. Обычно она возникает когда nginx отправляет запросы дальше (на apache, на php-fpm, …) По умолчанию эти таймауты — 60 секунд. Поставим 180 (эти параметры прописываются в location):

proxy_send_timeout 180s;
proxy_read_timeout 180s;

Хочу заметить, что буква ‘s’ — обязательна. Без неё ошибок не будет, но и значения не будут учитываться.

Читать далее

[nginx] Рекомендации по защите

В статье будем рассмотрены варианты защиты nginx от разного рода нападений, атак, а так же улучшений

1) Запрет доступа по IP

Разрешим доступ только через доменное имя:

if ($host !~ ^(host.com|www.host.com)$ ) {
return 444;
}

Читать далее

Failed to enable the ‘httpready’ Accept Filter

Если вы видите такую ошибку, она может означать одно: есть проблемы с модулем httpready. Но решение проблемы делиться на 2 случая:

1) Модули не подгружены.

Проверить загрузку модулей можно так:

$/sbin/kldstat -v | grep accf_http
$/sbin/kldstat -v | grep accf_data

Читать далее