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

SVN: 503 ошибка при иморте .htaccess

Очень интересная ошибка: когда происходит комит проекта в котором есть .htaccess процес импорта прерывается:

Adding .htaccess
svn: Commit failed (details follow):
svn: Server sent unexpected return value (503 Service Unavailable) in response
to PROPFIND request for '/svn/source/!svn/wrk/a-lot-of-symbols-here/.htaccess'
svn: Server sent unexpected return value (503 Service Unavailable) in response
to PROPFIND request for '/svn/source/.htaccess'

И с чего бы тут ошибка должна быть? :)

Read more

Apache: быстрое добавление сайтов

Набросал простой скрипт, для удобного создания VirtualHost в debian.

Наверное тоже надоело лесть, создавать vhost по существующему, править пути, перезапускать сервер и так много раз и по кругу? А ещё не хватало опечататься?

Предлагаю такое решение: скрипт, делающий всю эту рутинную работу. Принимает только 1 аргумент - имя сайта и сам создаёт скелет и VirtualHost по шаблону.

В каталоге с сайтами создаётся папка с указанным именем. В ней - ещё 2 папки - log и www - для логов и сайта соответственно. А так же vhost - файл с описанием виртуального хоста по шаблону, лежащему в папке с сайтами. На этот файл создаётся симлинк в стандартное для дебиановского апача место - /etc/apache2/sites-avalable. После установки прав на созданные папки происходит вызов a2ensite и перезапуск апача. На скриншоте выше - кусочек такого скелета который получился после работы скрипта - из наутилуса

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