FAQ   •  Поиск
Вход  •  Регистрация
 
установки

 
Начать новую тему   Ответить на тему    Список форумов newssoft.ru -> Серверные команды
Предыдущая тема :: Следующая тема  
Автор Сообщение
admin
Site Admin


Зарегистрирован: 11.09.2008
Сообщения: 546

СообщениеДобавлено: Чт Ноя 01, 2012 11:50 am    Заголовок сообщения: установки Ответить с цитатой

mod_rpaf

http://rootblog.info/10-ustanovka-mod_rpaf.html

Сейчас многие как фронтенд ставят на 80 порт Nginx но тогда появляется проблема, ведь Nginx передает апачу не IP пользователя посетившего ресурс а IP самого сервера. Тогда во всех логах получается айпи сервера что не есть хорошо. Решается проблема установкой модуля для Apache 2- mod_rpaf

Данный метод использован на сервере:


ОС:CentOS 5
Apache 2.2.3
Nginx 0.5
ISPManager Lite

И так поехали.
Идем в консоль и входим на сервер под root’oм:
1. Устанавливаем пакет httpd-devel: (зачастую если установлена панель к примеру данный пакет уже стоит)
Код:
yum -y install httpd-devel



2. Скачиваем и устанавливаем mod_rpaf:
Входим в директорию /usr/local/src

Код:
cd /usr/local/src



Загружаем в /usr/local/src файл mod_rpaf-0.6.tar.gz

Код:
wget http://fossies.org/linux/www/apache_httpd_modules/mod_rpaf-0.6.tar.gz



Распаковываем mod_rpaf-0.6.tar.gz
Код:
tar xzf mod_rpaf-0.6.tar.gz



Переходим в каталог который распаковали

Код:
cd mod_rpaf-0.6



Ставим модуль в систему

Код:
apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c



3. Далее нужно создать файл конфигурации mod_rpaf - /etc/httpd/conf.d/rpaf.conf и добавить в него следующие строки:

Код:
LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFproxy_ips 127.0.0.1 xx.xx.xx.xx yy.yy.yy.yy


или (на нашем сервере)
Код:
LoadModule rpaf_module modules/mod_rpaf-2.0.so

<IfModule mod_rpaf-2.0.c>

 RPAFenable On
 RPAFproxy_ips 127.0.0.1  80.249.164.91
 RPAFsethostname On
 RPAFheader X-Real-IP

</IfModule>



где xx.xx.xx.xx и yy.yy.yy.yy - IP адреса вашего сервера. Если на сервере более двух IP, добавьте их по той же аналогии.
Далее требуется перезапустить Apache, для этого выполните команду

service httpd restart


4. В nginx внутри блока http {} должны быть указаны строки:
Код:
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

(снова обращаю внимание, у меня стоит ISPManager и ставил я nginx силами панели потому данные строки уже есть в конфиге потому у кого есть лишнее не дописываем)
если модифицируется nginx.conf, следует перезапустить nginx:
/etc/init.d/nginx stop
/etc/init.d/nginx start


5. Как проверить, работает ли установленный модуль.
На любом из доменов, которые расположены на Вашем сервере, разместите файл test.php с содержимым:
Код:

"<? echo $_SERVER['REMOTE_ADDR']; ?>"



Далее зайдите по ссылке http://domain.tld/test.php, где domain.tld - имя вашего домена. Если как результат отображается IP, отличающийся от IP вашего сервера, модуль работает корректно


Последний раз редактировалось: admin (Пн Фев 16, 2015 5:59 pm), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
admin
Site Admin


Зарегистрирован: 11.09.2008
Сообщения: 546

СообщениеДобавлено: Чт Ноя 01, 2012 11:58 am    Заголовок сообщения: Ответить с цитатой

nginx
http://justlest.info/2010/01/setup-nginx-centos-cpanel


Установка и настройка Nginx на CentOS 5 с Cpanel

без комментариев

Nginx - это небольшой, очень быстрый и эффективный веб-сервер, как правило, используемый для обслуживания статического контента и как обратный прокси (или балансировщик нагрузки) для Apache или других относительно медленных бэкендов.

Поэтому вполне естественно использовать Nginx в качестве фронтэнда для Apache. Nginx позволяет экономить значительный объем памяти и процессорного времени, как правило используемых многочисленными процессами Apache, отдающими контент клиентам.
mod_rpaf

В случае использования Nginx в качестве реверсивного прокси перед Apache, ip-адрес посетителя, получаемый Apache, будет неверным, так как все запросы к Apache приходят от Nginx.

Чтобы в Apache записывал реальные ip-адреса посетителей вместо ip-адреса сервера, необходим специальный модуль Apache (mod_rpaf).


Скачиваем, разархивируем, переходим в только что созданную директорию и запускаем команду под root:
/usr/local/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

Затем заходим в WHM, Main >> Service Configuration >> Apache Configuration > Include Editor > Pre Main Include и добавляем следующиее, заменив LIST_OF_YOUR_IPS списком ip-адресов, управляемых с помощью Cpanel:
LoadModule rpaf_module modules/mod_rpaf-2.0.so

RPAFenable On
# Enable reverse proxy add forward
RPAFproxy_ips 127.0.0.1 LIST_OF_YOUR_IPS
# which ips are forwarding requests to us
RPAFsethostname On
# let rpaf update vhost settings
# allows to have the same hostnames as in the "real"
# configuration for the forwarding Apache
RPAFheader X-Real-IP
# Allows you to change which header mod_rpaf looks
# for when trying to find the ip the that is forwarding
# our requests
Установка и настройка Nginx

Устанавливаем зависимости (в моем случае не хватало только pcre-devel, остальное на сервере с Cpanel обычно уже установлено):
yum install pcre-devel

Скачиваем Nginx с http://sysoev.ru/nginx/download.html, разархивируем, переходим в директорию и собираем исходники:
./configure
make
make install

Создаем директорию для хранения логов Nginx:
mkdir /var/log/nginx

Изменяем стандартные настроики Nginx в файле /usr/local/nginx/conf/nginx.conf:
user nobody;
worker_processes 1;

error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
resolver 127.0.0.1;

include mime.types;
default_type application/octet-stream;

sendfile on;
tcp_nopush on;

keepalive_timeout 65;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;

server {
listen 80 default;
location / {
proxy_pass http://$host:81;
}
}
}

Создаем init.d скрипт /etc/init.d/nginx:
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemin
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /var/run/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

lockfile=/var/lock/subsys/nginx

start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}

stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}

restart() {
configtest || return $?
stop
start
}

reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}

force_reload() {
restart
}

configtest() {
$nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
status $prog
}

rh_status_q() {
rh_status >/dev/null 2>&1
}

case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac

Делаем init.d скрипт исполняемым и включаем автозапуск Nginx при загрузке системы:
chmod +x /etc/init.d/nginx
chkconfig nginx on

Проверяем правильность конфигурации nginx:
service nginx configtest
Изменение конфигурации Cpanel

Теперь нужно перенести Apache на другой порт, например, 81-й. Можно просто заменить 0.0.0.0:80 на 0.0.0.0:81 в WHM на станице "Tweak Settings", или отредактировать файл /var/cpanel/cpanel.config, заменив порт 80 в опции apache_port на 81:
apache_port=0.0.0.0:81

Запукаем /usr/local/cpanel/whostmgr/bin/whostmgr2 --updatetweaksettings для применения изменений.

Остается лишь запустить Nginx для приема запросов на 80-м порту и их проксирования к Apache:
service nginx start
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов newssoft.ru -> Серверные команды Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
AllSat 22  - photographe de mariage - 2006