Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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
Загружаем в /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 |
Переходим в каталог который распаковали
Ставим модуль в систему
Код: | 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 раз |
|
Вернуться к началу |
|
|
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 |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group
|
|