nginx: proxy all traffic to apache

Sometimes you need to add nginx frontend beside apache webserver. In my case I have tons of websites where visitors are very rare. Further I’m too lazy to write configuration files for each virtual host in nginx. On other side I want to proxy some traffic to another webservers such as nodejs applications or just serve static content.

\"nginx-apache\"

In this case I assume that your apache2 listening for connections on 127.0.0.1:8080, ie in config file of apache:

/etc/apache2$ cat ports.conf
Listen 8080

Make sure all your VitrualHost binded to port 8080

Read more

nginx: принудительный редирект на https

Допустим, есть какая-то секретная часть сайта, например админка, или, иструменты администратора/разработчика. Очевидно, что к таким местам желательо пускать только шифрованый трафик (даже если сертификаты самопальные).

Для того, чтоб nginx переадресовывал все запросы с заданного хоста на точно такой же, но с https:

# Just redirect to apache-secured site

server {
  listen 80; ## listen for ipv4
  server_name  admin.somesite.com tools.somesite.com;
  rewrite ^ https://$server_name$request_uri? permanent;
}

Так как не публичные части сайта не часто используются, вижу смысл обслуживать https с помощью apache (при условии что связка nginx+apache).

Debian: php-fpm в Squeeze

Ах эти мейнтейнеры Дебиана! Обещали оставить в сквизе php-fpm, но опять появились баги тараканы в голове – вэб разработчики и сисадмины как и прежде используют глючные сборки от dotdeb, если вообще не пересобирают руками весь php.

Read more

Kohana & firePHP: nginx выдаёт 502 при включённом debugToolbar

Те, кто следит за количеством запросов, потребляемой памяти, временем выполнения и другими важными показателями при использовании debugToolbar также наверняка используют firePHP – плагин к плагину fireBug для Firefox позволяющий дебажить работу своего веб-приложения.

По понятным причинам, на сайте после apache поставлен nginx. Наверное кто нибудь пытался сделать дамп большого объекта или массива и запихать его в firePHP. PHP скрипт отрабатывает удачно, в логах также всё нормально(код 200):

123.123.123.123 - - [31/Jan/2010:15:08:44 +0300] "GET /somepage/o.O HTTP/1.0" 200 66939 "-" "Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.1.6) Gecko/20091216 Iceweasel/3.5.6 (like Firefox/3.5.6; Debian-3.5.6-1) FirePHP/0.4"

А вот nginx в браузер выдаёт

502 Bad Gateway

nginx

Так и в моём случае: всё работало нормально, казалось бы изменил совсем чуть-чуть: добавил ещё один вызов метода у модели. И на тебе – 502 Bad Gateway.

Read more