21 июня 2011 г.

Инфраструктура Microsoft.

http://biz.cnews.ru/news/top/index.shtml?2011/04/21/437556
Достаточно много интересного можно узнать - особенно интересным было почитать о том, что сама инфраструктура в аппаратном обеспечении не стандартизирована.
60 на 40 в процентах инфраструктура и безопасность против девелоперов... очень сильно. Очень.
В общем читаем и думаем-думаем-думаем.

UPD.
http://www.microsoft.com/industry/publicsector/partnersolutionmarketplace/global/CaseStudyDetail.aspx?casestudyid=4000006654
Про SAP ERP в Microsoft. Однако.

Amon Tobin - Esther's

Спер у Вовчика. Очень интересное видео.

9 июня 2011 г.

pendulum - slam

Painkiller - Freestylers ft. Pendulum

Nginx+php+php-fpm

На днях попросили поставить связку веб-сервер + PHP. А php чтобы 5.2 ветки был. Условие - чтобы как можно легче и быстрее работал. Тюнингом пока не занимались - ждем нагрузки.
Коротко по каким инструкциям делал.
  • OS - fedora 14
  • Web-server - nginx
  • php - 5.2.17 + php-fpm
Доустановим для начала необходимые пакеты в базовую установку fedora 14.
yum install screenyum install mcyum install mcyum install httpd-develyum install libjpeg-develyum install libpng-develyum install freetype-develyum install libgnuintl.so.8
Скачиваем php, патч php-fpm разворачиваем архив в /usr/local/src (я так привык).
tar jvfz php-5.2.17.tar.bz2
cd php-5.2.17
Патчим php с помощью патча php-fpm (такие действия необходимы для php-5.2, php-5.3 стал из репозитариев без проблем с использованием yum)
patch -p1 < ../php-5.2.17-fpm-0.5.14.diff
Опции configure для php (у нас были некоторые требования и нет необходимости подключать дополнительные модули):

./configure  --with-gd --enable-gd-native-ttf --with-ttf --enable-safe-mode --enable-magic-quotes --with-gettext --with-zlib --with-curl --enable-soap --enable-sockets --with-openssl --enable-mbstring --with-gdbm --enable-fastcgi --enable-fpm --enable-dba --with-libdir=/usr/lib64 --enable-shared
Компилируем и устанавливаем:
make && make install
Выкинуло что куда поставило:
Installing PHP SAPI module:       cgi
Installing PHP CGI binary: /usr/local/bin/Installing FPM config:            /usr/local/etc/php-fpm.conf                                  (installing as php-fpm.conf.default)Installing init.d script:         /usr/local/sbin/php-fpmInstalling PHP CLI binary:        /usr/local/bin/Installing PHP CLI man page:      /usr/local/man/man1/Installing build environment:     /usr/local/lib/php/build/Installing header files:          /usr/local/include/php/Installing helper programs:       /usr/local/bin/  program: phpize  program: php-configInstalling man pages:             /usr/local/man/man1/  page: phpize.1  page: php-config.1Installing PEAR environment:      /usr/local/lib/php/[PEAR] Archive_Tar    - already installed: 1.3.7[PEAR] Console_Getopt - already installed: 1.2.3[PEAR] Structures_Graph- already installed: 1.0.3[PEAR] XML_Util       - already installed: 1.2.1[PEAR] PEAR           - already installed: 1.9.1Wrote PEAR system config file at: /usr/local/etc/pear.confYou may want to add: /usr/local/lib/php to your php.ini include_pathInstalling PDO headers:          /usr/local/include/php/ext/pdo/
Диффы конфига php-fpm: /usr/local/etc/php-fpm.conf
# diff php-fpm.conf php-fpm.conf.default
51,52c51,52
<                               nginx
<                               nginx
---
>                              
>                              
63c63
<                       nobody
---
>              
66c66
<                       nobody
---
>              
Конфиг nginx: /etc/nginx/nginx.conf
#######################################################################
#
# This is the main Nginx configuration file.
#
# More information about the configuration options is available on
#   * the English wiki - http://wiki.nginx.org/Main
#   * the Russian documentation - http://sysoev.ru/nginx/
#
#######################################################################

#----------------------------------------------------------------------
# Main Module - directives that cover basic functionality
#
#   http://wiki.nginx.org/NginxHttpMainModule
#
#----------------------------------------------------------------------

user              nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log  notice;
#error_log  /var/log/nginx/error.log  info;

pid        /var/run/nginx.pid;


#----------------------------------------------------------------------
# Events Module
#
#   http://wiki.nginx.org/NginxHttpEventsModule
#
#----------------------------------------------------------------------

events {
    worker_connections  1024;
}


#----------------------------------------------------------------------
# HTTP Core Module
#
#   http://wiki.nginx.org/NginxHttpCoreModule
#
#----------------------------------------------------------------------

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

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $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;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    #
    # The default server
    #
    server {
        listen       80;
        server_name  _;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }

        error_page  404              /404.html;
        location = /404.html {
            root   /usr/share/nginx/html;
        }

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           /usr/share/nginx/html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

    # Load config files from the /etc/nginx/conf.d directory
    include /etc/nginx/conf.d/*.conf;

}
Автостарт nginx:
chkconfig --levels 235 nginx on
/etc/init.d/nginx start
Автостарт php-fpm:

#cp /usr/local/sbin/php-fpm /etc/init.d/

#cat /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
/etc/init.d/php-fpm start

Смотрим как все работает:

# ps axuu|egrep '(php|nginx)'root     12341  0.0  0.0 193368  3344 ?        Ss   Jun08   0:17 /usr/local/bin/php-cgi --fpm --fpm-config /usr/local/etc/php-fpm.confnobody   12342  0.0  0.0 193368  3708 ?        S    Jun08   0:00 /usr/local/bin/php-cgi --fpm --fpm-config /usr/local/etc/php-fpm.confnobody   12343  0.0  0.0 193368  4384 ?        S    Jun08   0:00 /usr/local/bin/php-cgi --fpm --fpm-config /usr/local/etc/php-fpm.confnobody   12344  0.0  0.0 193368  4384 ?        S    Jun08   0:00 /usr/local/bin/php-cgi --fpm --fpm-config /usr/local/etc/php-fpm.confnobody   12345  0.0  0.0 193368  4384 ?        S    Jun08   0:00 /usr/local/bin/php-cgi --fpm --fpm-config /usr/local/etc/php-fpm.confnobody   12346  0.0  0.0 193368  4384 ?        S    Jun08   0:00 /usr/local/bin/php-cgi --fpm --fpm-config /usr/local/etc/php-fpm.confroot     12914  0.0  0.0  98036  1796 ?        Ss   Jun08   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.confnginx    12915  0.0  0.0  98452  2980 ?        S    Jun08   0:00 nginx: worker process
# lsof -i|egrep '(php|nginx)'php-cgi  12341   root    6u  IPv4 590354      0t0  TCP localhost:cslistener (LISTEN)php-cgi  12342 nobody    0u  IPv4 590354      0t0  TCP localhost:cslistener (LISTEN)php-cgi  12343 nobody    0u  IPv4 590354      0t0  TCP localhost:cslistener (LISTEN)php-cgi  12344 nobody    0u  IPv4 590354      0t0  TCP localhost:cslistener (LISTEN)php-cgi  12345 nobody    0u  IPv4 590354      0t0  TCP localhost:cslistener (LISTEN)php-cgi  12346 nobody    0u  IPv4 590354      0t0  TCP localhost:cslistener (LISTEN)nginx    12914   root    6u  IPv4 592201      0t0  TCP *:http (LISTEN)nginx    12915  nginx    6u  IPv4 592201      0t0  TCP *:http (LISTEN)
# grep cslistener /etc/servicescslistener      9000/tcp                # CSlistenercslistener      9000/udp                # CSlistener

Вроде работает. Ждем нагрузки.



Ссылки:

http://www.if-not-true-then-false.com/2010/install-apache-php-on-fedora-centos-red-hat-rhel/

http://redhat-club.org/forum/viewtopic.php?id=6685 - CentOS 5.2/Fedora Nginx + php-fpm

http://hacktux.com/compile/php/fedora - compile php on fedora
http://php-fpm.org/wiki/Documentation - install php-fpm
http://groups.google.com/group/highload-php-ru - группа новостей по высоконагруженным решениям

Office 2010: The Movie (укр. версія)

2 июня 2011 г.

Nginx + Exchange OWA

Полезная штука для организации фронтэнда для внутреннего сервера EXCHANGE.
http://nginx.org/pipermail/nginx-ru/2010-January/031267.html

DigitalShaman nginx-forum на nginx.us 
Ср Янв 6 12:02:53 MSK 2010

Добрый день. Спасибо за ответ.

> > location /exchange { proxy_pass https://frontendexch.kernel.local/exchange; }

> Поскольку uri менять не нужно, можно попробовать вот так:

> - location /exchange { proxy_pass https://frontendexch.kernel.local/exchange; }
> + location /exchange { proxy_pass https://frontendexch.kernel.local; }

> В этом случае на бекенд будет передаваться оригинальный запрос в
> том виде как он пришёл от клиента, точно также закодированный.

Попробовал сделать так как Вы посоветовали, работает.

> Будет здорово если вы попробуете прилагающийся патч и сообщите о
> результатах.

Патч попробовал - проблема также ушла, теперь перекодирует верно при 
location /exchange { proxy_pass https://frontendexch.kernel.local/exchange; } . 
Еще раз спасибо. Вопрос закрыт

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,37137,37536#msg-37536


Brian Culbertson Hookin' Up

Jay-Jay Johanson - Rush

Зачьот!

Me Gustas Tú - Manu Chao (with lyrics)

Отличное настроение и море-океан-вселенная позитива... ;)