пятница, 13 ноября 2009 г.

В поисках наткнулся....

Ползал по инету в поисках интересной информации по части IT и наткнулся на интересный блог: rvnikita.ru . Довольно не ординарная подборка тем. Программирование на питоне на ряду с психологией клиентов, раздача инвайтов на волну рядом с макетирование приложений и веб страниц. Довольно увлекательно. Будет время - обязательно загляните. Читать дальше......

вторник, 14 июля 2009 г.

php-fpm + nginx + mysql load balancing

Долго рылся по сети в поисках мана как это сделать. Нашел много всего и много не нужного. Вот напоминание себе, как делал сам. Какие пакеты ставил, как конфигурил и т.п.

Для начала поставим мускль. Ставил его через yum :

yum install mysql mysql-devel


Стартуем mysql:

/etc/init.d/mysql start



Далее необходимо поставить php и пропатчить его для поддержки php-fpm.
Качаем последнюю версию php с php.net, патч с php-fpm.org и патчим:


wget http://ru.php.net/distributions/php-5.3.0.tar.bz21
wget http://php-fpm.org/downloads/php-5.3.0-fpm-0.5.12-rc.diff.gz
bzip2 -cd php-5.3.0.tar.bz2 | tar xf -
gzip -cd php-5.3.0-fpm-0.5.12-rc.diff.gz | patch -d php-5.3.0 -p1



Теперь для сборки php необходимо установить необходимые пакеты:

yum instal gcc libxml libxml2-devel curl-devel libpng-devel
yum install libmcrypt-devel libmcrypt-devel libtool-ltdl pcre


Далее создадим симлинк

ln -s /usr/lib/libltdl.so.3 /usr/lib/libltdl.so


Теперь можно запустить конфигурацию и сборку php:

cd php-5.3.0
./configure --enable-fastcgi --enable-fpm --with-mcrypt \
--enable-mbstring --with-mysql=/usr/local/mysql \
--with-mysql-sock=/tmp/mysql.sock --with-curl \
--with-sockets --with-gd --with-zlib --with-iconv \
--with-dom --prefix=/opt/php

make -j3
make install



После окончания сборки необходимо настроить php-fpm. Большинство настроек я оставил умолчательными изменил только эти строчки:


#Для того чтобы слушать внешние подключения, меняем 127.0.0.1 на:
<value name="listen_address">192.168.50.129:9000</value>
# Выставляем права
<value name="listen_options">
<value name="owner">www</value>
<value name="group">www</value>
<value name="mode">0666</value>
</value>
#Имя пользователя
Unix user of processes
<value name="user">www</value>
Unix group of processes
<value name="group">www</value>
#Адреса, с которых разрешено подключение
<value name="allowed_clients">192.168.50.129,192.168.50.128</value>



Далее установим nginx

./configure --prefix=/opt/nginx --sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock \
--user=nginx --group=nginx --with-http_ssl_module \
--with-http_flv_module --with-http_gzip_static_module \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--with-http_realip_module --with-http_stub_status_module

make && make install



Далее настроим nginx, конфиг лежит в /etc/nginx/nginx.conf

#имя пользователя от которого будет работать nginx
user www www;
worker_processes 2;

error_log /var/log/nginx/error.log debug;

pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] $status '
'"$request" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;
tcp_nopush on;
tcp_nodelay on;
#Делаем upstream для лоад балансинга
#указываем ip адреса серверов, где крутиться php-fpm
upstream backend{
#Включаем iphash для того, чтобы падключения распределялись
#по хешу ip адресов клиентов
ip_hash;
server 192.168.50.129:9000;
server 192.168.50.128:9000;
}

server {
listen 80;
server_name my.serv.com;
access_log /var/log/nginx/serv.access.log main;
location / {
#устанавливаем root каталог для скриптов
set $root_for_cgi "/opt/nginx/php/";
#Включаем дополнительные параметра fastcgi
include fastcgi_params;
}
}
}



И теперь сам конфиг fastcgi:

fastcgi_connect_timeout 1;
fastcgi_next_upstream timeout;

fastcgi_param SCRIPT_FILENAME $root_for_cgi$fastcgi_script_name;
#в качестве адреса перенаправления запросов на динамический контент
#указываем адрес upstream-а
fastcgi_pass backend;



fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;


Читать дальше......

пятница, 3 апреля 2009 г.

О ценах в росии и не россии

Блин. Во дела. Решил приглядеть себе Mac mini, посмотрел в максторе - в переводе на рубли стоит 18 т.р. Отлично!!! подумал я, можно купить. Полез посмотреть есть ли такая игрушка в нашем российском re:store. Есть!!! Но, блин, стоит он 44 т.р. Конфигурация таже, игрушка таже, но стоит дороже в 2 раза !!! За такую сумму покупать такую вешь я не собираюсь. Списался по аське с товарищем из Лондона, если брать на островах - стоить игрушка будет 25 т.р. - ну уже получше. Будем теперь набирать денег :) Читать дальше......

среда, 18 февраля 2009 г.

О работе и отдыхе на работе

Сидеть на работе порой бывает скучновато, сидишь тка себе, работаешь, помогаешь пользователям, а хочется доброго, светлого. Например развлеч свою скромную персону зарубежным кинемотографом. Отсюда и пошел интерес к сериалам: ненавязчивость сюжета, не требует большого внимания для слежения за действиями героев. Что тут говорить и сам являюсь поклонником данного жанра. Много прекрасных вечеров было проведено за просмотром доктора хауса и декстера

Читать дальше......

Случилось

Ну вот и свершилось, есть куда писать :) Заведение данного блоГГа совпало с установкой хакинтоша на мой бук. Теперь буду привыкать сразу к 2 вещам: блоггить и юзать mac os Читать дальше......