Для того чтобы снизить нагрузку на apache, и оптимизировать время отклика, установим nginx.
Для начала заставим apache слушать другой ip, для чего находим и исправляем в файле /usr/local/etc/apache2/httpd.conf:
Listen Ваш_IP_адрес:80
на:
Listen 127.0.0.1:80
Если используем виртуальные хосты, еще меняем значение переменной NameVirtualHost на:
NameVirtualHost 127.0.0.1:80
Ну и, конечно же, описание каждого виртуального хоста будет начинаться с:
<VirtualHost 127.0.0.1:80>
С настройкой apache закончили, приступим к nginx:
Для начала запустим установку:
cd /usr/ports/www/nginx
make install clean
Затем необходимо отредактировать файл конфигурации /usr/local/etc/nginx/nginx.conf:
server {
listen Ваш_IP_адрес:80;
location / {
proxy_pass http://127.0.0.1:80/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
После чего добавляем в файл /etc/rc.conf:
nginx_enable="YES"
И перезапускаем сервисы:
/usr/local/etc/rc.d/apache2 restart
/usr/local/etc/rc.d/nginx restart
Вот вроде и все, работаем!
P.S.
Для того, чтобы в php переменная $_SERVER[‘REMOTE_ADDR’] содержала адрес клиента необходимо поставить для apache модуль mod_rpaf, делаем:
cd /usr/ports/www/mod_rpaf
make install clean
Добавляем в /usr/local/etc/apache2/httpd.conf:
LoadModule rpaf_module libexec/apache2/mod_rpaf.so
RPAFenable On
RPAFproxy_ips 127.0.0.1 Ваш_IP_адрес
И перезапускаем apache:
/usr/local/etc/rc.d/apache2 restart
Вот вроде опять все!