Проблема с mod_rpaf

tnAnGel

Проверенные
Сообщения
1,239
Реакции
910
Баллы
8,265
Мне не у кого спросить, попытаюсь найти ответ тут. В логах апача IP сервера везде и на сайте 1 гость в лице, приблизительно, 40 гостей и 40 роботов. Читал, что проблема в mod_rpaf, но мне трудно разобраться. Много чего делал, но так и не получилось сделать нормально :(

В /etc/apache2/mods-available/rpaf.conf

Код:
<IfModule rpaf_module>
    RPAFenable On

    # When enabled, take the incoming X-Host header and
    # update the virtualhost settings accordingly:
    RPAFsethostname On

    # Define which IP's are your frontend proxies that sends
    # the correct X-Forwarded-For headers:
    RPAFproxy_ips 127.0.0.1 xxx.xxx.xxx.xxx(ip моего сервера)
    #RPAFproxy_ips xxx.xxx.xxx.xxx
        RPAFsethostname On
    # Change the header name to parse from the default
    # X-Forwarded-For to something of your choice:
   RPAFheader X-Real-IP
# RPAFheader X-Forwarded-For
</IfModule>

У вас какие мысли на этот счет?
 
mod_rpaf это для apache2.2, на apache2.4 нужно использовать mod_remoteip.
И в nginx в секцию проксирования добавлять
Код:
proxy_set_header X-Real-IP  $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
А вообще, лучше открыть phpinfo и сразу посмотреть, какие заголовки приходят. Отсюда и танцевать.
 
Smalesh,

Код:
Server version: Apache/2.4.10 (Debian)
Server built:   Jul 20 2016 06:48:18

нашел такое вот решение

после удаления rpaf.conf в /etc/apache2/mods-available и перезапуска apache2 он не стартует. Ошибка:
Код:
Job for apache2.service failed. See 'systemctl status apache2.service' and 'journalctl -xn' for details.

Даже после прописи в /etc/apache2/apache2.conf

Код:
<IfModule remoteip_module>
RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 127.0.0.1
</IfModule>
и активации a2enmod mod_remoteip - ERROR: Module mod_remoteip does not exist!

Вернул назад rpaf.conf - апач работает
 
Smalesh, можете ознакомиться с phpinfo

Код:
root@dark-time:~# apachectl -t
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using dark-time.com. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Вообще проблемы начались после переезда. Панель и дистрибутив тот же
 
Смотри заголовок
Код:
HTTP_CF_CONNECTING_IP
Это cloudflare. Там реальный ip, который надо протянуть через nginx, делается это добавлением в главный конфиг nginx примерно такого
Код:
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 199.27.128.0/21;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2c0f:f248::/32;
set_real_ip_from 2a06:98c0::/29;

# use any of the following two
real_ip_header CF-Connecting-IP;
#real_ip_header X-Forwarded-For;
Сами ip берутся здесь

Добавлять в секцию http

apachectl -t AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using dark-time.com. Set the 'ServerName' directive globally to suppress this message Syntax OK
Это с модулем rpaf или remoteip? Список подключенных модулей можно посмотреть в apachectl -M
 
Smalesh, upload_2016-9-6_0-27-59.png
подобное уже есть, т.е. добавить то, чего нет?

Smalesh,
Код:
~# apachectl -M
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using dark-time.com. Set the 'ServerName' directive globally to suppress this message
Loaded Modules:
 core_module (static)
 so_module (static)
 watchdog_module (static)
 http_module (static)
 log_config_module (static)
 logio_module (static)
 version_module (static)
 unixd_module (static)
 access_compat_module (shared)
 actions_module (shared)
 alias_module (shared)
 auth_basic_module (shared)
 authn_core_module (shared)
 authn_file_module (shared)
 authz_core_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 fcgid_module (shared)
 filter_module (shared)
 mime_module (shared)
 mpm_prefork_module (shared)
 negotiation_module (shared)
 php5_module (shared)
 rewrite_module (shared)
 rpaf_module (shared)
 ruid2_module (shared)
 setenvif_module (shared)
 socache_shmcb_module (shared)
 ssl_module (shared)
 status_module (shared)
 suexec_module (shared)
 
подобное уже есть, т.е. добавить то, чего нет?
То чего нет, можно добавить, но это не то.
И все равно что-то накуралесили с настройками, даже при прямом вызове REMOTE_ADDR не правильный.
 
VestaCP без своих надстроек,
HTTP_X_REAL_IP и HTTP_X_FORWARDED_FOR я вижу, вот апач этого не видит. rpaf выкинуть, remoteip поставить и настроить.
apachectl -t и apachectl -M при установленном mod_remoteip.
Или как крайний случай, мне в личку доступ (ip и рутовый пароль), пока занят, но может к утру посмотрю что там.
 
nginx -t покажет ошибку

Я сам еще поковыряю, могу ведь и 5тый раз вс е с 0 сделать...
Ну там вообще можно выловить HTTP_X_REAL_IP в config.php, но это костыли и в логах все равно не то ip. Все крутится вокруг rpaf - в 2.4 оно не работает.
 
Вот я сейчас глянул в весту с апачем, там в конфиге
Код:
<IfModule remoteip_module>
    RemoteIPHeader X-Real-IP
    LogFormat "%a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%a %l %u %t \"%r\" %>s %b" common
</IfModule>
Т.е. для mod_remoteip перехватывается HTTP_X_REAL_IP . Остальные две строки - это запись в лог. Все работает. Правда центос.
Повторюсь, веста ставится на центос. Она под ним рождена, в остальные оси она портирована.

nginx: [emerg] the same path name "/var/cache/nginx/dark-time.com" used in /etc/nginx/conf.d/01_caching_pool.conf:1 and in /etc/nginx/conf.d/01_caching_pool.conf:2
Проверяй в /etc/nginx/conf.d/01_caching_pool.conf дубли.
 
Последнее редактирование:
Smalesh, да я уже бекап сделал, сейчас на временный сервер скину и центос накачу

Да, есть дубли. Удалил строку, ошибка не исчезла. Давай я лучше другой дистрибутив поставлю и там видно уже будет
 
В htaccess понятно как сделать, а как там?
А там ровно одна строка в nginx.conf домена (который в пользовательской дире)
Код:
rewrite ^(.*) https://блабла$request_uri? permanent;
Сразу после error_log
Вот и весь редирект
 
Современный облачный хостинг провайдер | Aéza

Похожие темы

Назад
Сверху Снизу