Категорії
Misc, staff, other WWW

[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.

Категорії
Misc, staff, other WWW

[apache] fastcgi + php-fpm

1) Установка необходимых пакетов

# apt-get install libapache2-mod-fastcgi php5-fpm

2) Настройка php.

В настройках php-fpm.conf указываем сокет:

listen = 127.0.0.1:9000

Перезапускам php.

Категорії
Misc, staff, other WWW

[nginx] FastCGI + keepalive

Вроде бы всё просто, но есть небольшой хак: вот такая конструкция не будет поддерживать keepalive:

location / {
...
fastcgi_pass 127.0.0.1:9000;
fastcgi_keep_conn on;
...
}

Категорії
Misc, staff, other WWW

[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:

Категорії
WWW

[nginx] ссылки на location’ы

Информация из wiki (nginx.org):

Префикс “@” задаёт именованный location. Такой location не используется при обычной обработке запросов, а предназначен только для перенаправления в него запросов. Такие location’ы не могут быть вложенными и не могут содержать вложенные location’ы.

К чему это я? А к тому, что можно создать внутренний location, а потом на него просто ссылаться, не переписывая одни и те же параметры в каждом из нужных location’ов. Покажу это на примере.

Категорії
Misc, staff, other WWW

[nginx] regexp для субдоменов

Условие: есть сайты вида:

sub1.site1.ru
sub2.site1.ru
subn.site1.ru
sub1.site2.ru
sub2.site2.ru
subn.site2.ru

Категорії
WWW

[nginx] https proxy

Нашёл в рассылке по nginx: правильное проксирование https.

server {
   listen 80;
   listen 443 ssl;
   server_name .site.com;
   ssl_certificate /etc/nginx/domain.com.crt;
   ssl_certificate_key /etc/nginx/domain.com.key;
   ssl_session_cache  builtin:1000  shared:SSL:10m;
   ssl_ciphers EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:EECDH+RC4:RSA+RC4:!MD5;
   ssl_prefer_server_ciphers on;
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   ...
   location / {
      proxy_pass http://127.0.0.1:8080;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_set_header HTTPS $https;
   }
}

А можно проксировать через haproxy, используя протокол TCP вместо HTTP.

Категорії
WWW

Включаем gzip сжатие для web-страниц

nginx

Добавляем в раздел server/http такие строки:

gzip on
gzip_types text/plain application/xml application/x-javascript application/javascript text/javascript text/css text/xml;
gzip_comp_level 3;
gzip_buffers 128 4k;

Категорії
Misc, staff, other WWW

The plain HTTP request was sent to HTTPS port

Означает скорее всего то, что директивы

listen 80

и

listen 443

описаны в пределах одного блока server. Решений здесь 2:
– разнести из в разные блоки server {}
– закомментировать ssl on как показано на примере ниже:

server {
  listen 80;
  listen 443 default ssl;

  # ssl on   - remember to comment this out

}
Категорії
WWW

Быстро поднимаем webserver

Если вам нужно быстро поднять webserver без установки дополнительного ПО, то эта статья для вас. Ниже будет описано несколько разных методов.

1) python

$python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

Как видим, запустился web-сервер на порту 8000.

2) netcat

$while true ; do nc -l 80 < index.html ; done

Здесь идёт жёсткое указание, какой файл будет отдаваться по http.

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP
Powered by Muff