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

nginx: proxy_pass DNS name

При использовании proxy_pass, особенно если в качестве upstream’ов используется DNS name есть один нюанс, который хоть и описан в документации, но требует пояснения. Ниже цитата из рассылки nginx:

Читать далее

[nginx] rewrite: $host or $server_name

Очень часто это является проблемой при построении редиректов, когда у вас больше 1 домена. Следующая конструкция выглядит работоспособной:

return 301 https://$server_name$request_uri;

Всё работает, когда у вас всего 1 домен в server_name. А когда 2 и больше, то для них redirect работает не правильно (он редиректит на самый первый домен в server_name). А всё потому, что нужно вместо $server_name использовать хост. В документации написано следующее:

  • $server_name: имя сервера, принявшего запрос
  • $host: в порядке приоритета: имя хоста из строки запроса, или имя хоста из поля “Host” заголовка запроса, или имя сервера, соответствующего запросу

Читать далее

[nginx] Linux и reload: нюансы

Цитату взял с рассылки про nginx и привожу как есть:

С reload’ом на Linux’е имеется достаточно типичная проблема: в
отличие от других операционных систем, linux не позволяет
одновременно открыть listen-сокеты на *:80 и <ip>:80.

Читать далее

[atlassian] Добавить локального пользователя через базу

Все действия рекомендуется проводить при выключенных сервисах atlassian. Если время downtim’a критично, тогда сделать необходимые изменения и перезапустить сервис.

Confluence

— добавляем пользователя admin (ошибка возможна в случае дубликата id, соответственно нужно прописать уникальный) с паролем sphere:

insert into cwd_user(id, user_name, lower_user_name, active, created_date, updated_date, first_name, lower_first_name, last_name, lower_last_name, display_name, lower_display_name, email_address, lower_email_address, directory_id, credential) values (1212121, 'admin', 'admin', 'T', '2009-11-26 17:42:08', '2009-11-26 17:42:08', 'A. D.', 'a. d.', 'Ministrator', 'ministrator', 'A. D. Ministrator', 'a. d. ministrator', 'admin@example.com', 'admin@example.com', (select id from cwd_directory where directory_name='Confluence Internal Directory'), 'uQieO/1CGMUIXXftw3ynrsaYLShI+GTcPS4LdUGWbIusFvHPfUzD7CZvms6yMMvA8I7FViHVEqr6Mj4pCLKAFQ==');

insert into user_mapping values ('2c9681954172cf560000000000000001', 'admin', 'admin');

Читать далее

web-cканнеры

WhatWeb. Официальный сайт https://whatweb.net

WhatWeb is a next generation web scanner.

WhatWeb recognises web technologies including content management systems (CMS), blogging platforms, statistic/analytics packages, JavaScript libraries, web servers, and embedded devices.

WhatWeb has over 1000 plugins, each to recognise something different. WhatWeb also identifies version numbers, email addresses, account IDs, web framework modules, SQL errors, and more.

Читать далее

[nginx] proxy_pass и hostname

Если хотите, что бы proxy_pass правильно передавал hostname, нужно дополнительно это указать среди проксируемых заголовков:

proxy_pass       http://upstream;
proxy_set_header Host            $host;

В противном случае nginx будет выставлять имя hostname по имени апстрима.

[nginx] ssl + safari (chrome) = exited on signal 11

Если при использовании браузеров safari или chrome страничка не открывается, а в логах nginx’a

2014/03/26 01:53:33 [alert] 27385#0: worker process 24250 exited on signal 11
2014/03/26 01:53:33 [alert] 27385#0: worker process 24260 exited on signal 11
2014/03/26 01:53:34 [alert] 27385#0: worker process 24261 exited on signal 11

То всему виной отсутствие строки (просто добавьте её)

ssl_session_cache    shared:SSL:10m;

в конфиге nginx’a. Она позволяет «шарить» кеш между всеми
worker’ами nginx’a.

[nginx] Лимитируем по условию

Здесь буду писать о разного рода не стандартных ограничениях и как их решать.

1) Ограничение по user-agent’y:

nginx.conf:

http {
...
   map $http_user_agent $limit_bots {
      default '';
      ~*(yandex|msnbot|yahoo) $binary_remote_addr;
   }
   limit_req_zone $limit_bots zone=bots:10m rate=40r/m;
...
}

vhost.conf: Читать далее