ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[6]: Балансировка нагрузки в proxy



Здравствуйте, Eugene.

Вы писали 13 января 2005 г., 16:34:41:

> Здравствуйте, L0rda.

> Интересная фича.
> Можно чуть подробнее как вы это так запустили?
> Можно ввиде конфигов/ссылок.

> Спасибо.

>> У меня сейчас на сервере стоит apache+fastcgi+php(as fastcgi)+suexec
>> suexec немного пропатчен, в результате чего php работает как fastcgi
>> но с suexec. Производительность почти не теряется, безопасность
>> повышается, возможно дать каждому пользователю свой конфиг php.ini, гибко
>> настроив все что нужно.
Извиняюсь за оффтопик.

# Сборка апача на федоре с mod_geoip,suexec,fastcgi,php

mkdir -p ~/pack; cd ~/pack
wget http://de.php.net/distributions/php-4.3.10.tar.gz -O php-4.3.10.tar.gz
wget http://www.apache.org/dist/httpd/apache_1.3.33.tar.gz -O 
apache_1.3.33.tar.gz
wget http://www.maxmind.com/download/geoip/api/mod_geoip/mod_geoip_1.2.6.tar.gz 
-O mod_geoip_1.2.6.tar.gz
wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz -O 
mod_fastcgi-2.4.2.tar.gz

rm -rf mod_geoip_1.2.[0-9]
rm -rf apache_1.3.[0-9][0-9]
rm -rf php-4.[0-9].[0-9][0-9]?

tar xzf apache_1.3.33.tar.gz
tar xzf php-4.3.10.tar.gz
tar xzf mod_geoip_1.2.6.tar.gz
tar zxf mod_fastcgi-2.4.2.tar.gz
mkdir -p /usr/local/mysql
ln -s /usr/lib/mysql/ /usr/local/mysql/lib
ln -s /usr/include/mysql/ /usr/local/mysql/include

cd apache_1.3.33

#
# редактируем файл src/support/suexec.c
# 1. добавляем нужные переменные в safe_env_list
#    для меня это PHPRC и GEOIP_
# 2. не знаю сейчас нужно ли это, но когда PHP стоял как
#    CGI(просто cgi), то  необходимо было убрать строки,
#    следующие после комментария
#    ╚Error out if the target name/group is different from
#    the name/group of the cwd or the program╩ до следующего комментария.
# (http://ptitov.ru/articles/2002/10/06.html)
#
make clean
CFLAGS="-Wall -DHARD_SERVER_LIMIT=4096" ./configure  --prefix=/www  --add-module=../mod_geoip_1.2.6/mod_geoip.c 

# CGI php
cd ../php-4.3.10
make clean
./configure   --prefix=/www/php  --enable-sysvsem  --enable-sysvshm  --enable-mbstring  --with-mcrypt  --with-gd  --with-jpeg-dir=/usr/lib  --with-png-dir=/usr/lib  --with-zlib-dir=/usr/lib  --with-ttf=/usr/lib  --with-freetype-dir=/usr/lib  --enable-gd-native-ttf  --with-zlib  --with-mysql=/usr/local/mysql  --with-mysql-sock=/tmp/mysql.sock  --enable-force-cgi-redirect
 
make
make install

# FastCGI
cd ../php-4.3.10
make clean
./configure   --prefix=/www/fastphp  --enable-sysvsem  --enable-sysvshm  --enable-mbstring  --with-mcrypt  --with-gd  --with-jpeg-dir=/usr/lib  --with-png-dir=/usr/lib  --with-zlib-dir=/usr/lib  --with-ttf=/usr/lib  --with-freetype-dir=/usr/lib  --with-fastcgi=../mod_fastcgi-2.4.2  --enable-gd-native-ttf  --with-zlib  --with-mysql=/usr/local/mysql  --with-mysql-sock=/tmp/mysql.sock  --enable-force-cgi-redirect  --enable-fastcgi

make
make install
# Apache
adduser -u 8000 www
cd ../apache_1.3.33 
CFLAGS="-Wall -DHARD_SERVER_LIMIT=4096 -DNO_SUEXEC_FOR_AP_USER_N_GROUP=1" 
./configure  --prefix=/www  --activate-module=src/modules/extra/mod_geoip.o  --disable-module=actions  --disable-module=autoindex  --disable-module=imap  --disable-module=userdir  --disable-module=asis  --enable-module=negotiation  --enable-module=vhost_alias  --enable-module=env  --enable-module=cgi  --enable-module=so  --enable-module=rewrite  --enable-module=actions  --enable-suexec  --suexec-caller=www  --suexec-docroot=/  --suexec-logfile=/www/logs/suexec.log  --activate-module=src/modules/fastcgi/libfastcgi.a 
make
make install

#В конфиге апача:
<IfModule mod_fastcgi.c>
  FastCgiSuexec On
  FastCgiServer /www/fastphp/bin/phps
  ScriptAlias /fast-php/ "/www/fastphp/bin/"
  <Directory "/www/fastphp/bin/">
   AllowOverride None
   Options ExecCGI
   Order allow,deny
   Allow from all
  </Directory>
  RemoveHandler .php3 .php4 .phtml .php
  AddHandler php-fastcgi .php3 .php4 .phtml .php
  Action php-fastcgi /fast-php/phps
  AddType application/x-httpd-php .php3 .php4 .phtml .php
</IfModule>

#Содержимое /www/fastphp/bin/phps:

#!/bin/sh
PHP_FCGI_CHILDREN=8
export PHP_FCGI_CHILDREN
exec /www/fastphp/bin/php
#############

для того чтобы прописать отдельный php.ini для вхоста прописываем в
нем путь к нему
SetEnv PHPRC /another/php/ini/dir

Вроде все должно быть интуитивно понятно.
Если есть какие-то замечания/предложения, пишите мне в почту.



-- 
С уважением,
 L0rda                          mailto:l0rda@xxxxxxxxx






 




Copyright © Lexa Software, 1996-2009.