Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Nginx

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9

Открыть новую тему     Написать ответ в эту тему

Fafnir777

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NGINX + spawn-fcgi + PHP 5.2.6
 
NGINX отдает только sitename.com/script.php
 
При создании подкаталога, например вида sitename.com/subdir/script.php, выбрасывает 404.
 
Конфиг
*******************************************
user www;
worker_processes 2;
 
pid /var/run/nginx.pid;
error_log /var/log/nginx-error.log warn;
 
events {
  worker_connections 1024;
  use kqueue;
}
 
http {
  include mime.types;
  default_type application/octet-stream;
 
  # log options
  log_format main '$remote_addr - $remote_user [$time_local] '
  '"$request" $status $bytes_sent '
  '"$http_referer" "$http_user_agent" '
  '"$gzip_ratio"';
 
  # nginx options
  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;
  keepalive_timeout 65;
  server_tokens off;
 
 
 # fastcgi
  fastcgi_intercept_errors on;
 
  server {
  listen 80;
 
  server_name localhost;
 
  access_log /var/log/nginx.log main;
  location ~* ^.+\.(php)$ {
  fastcgi_pass 127.0.0.1:1026;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME /usr/local/www/nginx$fastcgi_script_name;
  include fastcgi_params;
  }
 
  location / {
  root /usr/local/www/mydomain;
  index index.php index.html index.htm;
  }
  }
 
server {
  listen 80;
 
  server_name sitename.com www.sitename.com;
 
  access_log /var/log/nginx.log main;
  location ~* ^.+\.(php)$ {
  fastcgi_pass 127.0.0.1:1026;
  fastcgi_index index.php;
  fastcgi_param SCRIPT_FILENAME /usr/local/www/sitename.com$fastcgi_script_name;
  include fastcgi_params;
  }
 
  location / {
  root /usr/local/www/sitename.com;
  index index.php index.html index.htm;
  }
  }
}

Всего записей: 9 | Зарегистр. 08-02-2005 | Отправлено: 00:49 14-10-2008
sfantom20



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо большое. Разобрался!
Теперь хочу вставить в проксируемую страницу /myinfo какой то свой текст.
Использую такой код который вставляю в location
 sub_filter '</body>' 'QWE</body>';
 sub_filter_once off;
 proxy_set_header Accept-Encoding "";
 
 
и не вижу QWE на странице, никаких ошибок и вообще обработки этой комманды в debug я не вижу.
Может есть какой-то нюанс для этой команды?

Всего записей: 271 | Зарегистр. 15-12-2004 | Отправлено: 09:51 11-03-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sfantom20
конфиг покажите полностью, и что возвращает конечный источник.

Всего записей: 16389 | Зарегистр. 20-09-2014 | Отправлено: 22:49 11-03-2025
sfantom20



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Разобрались, проксируемая страница не содержит </body>  поэтому и подменять нечего!

Всего записей: 271 | Зарегистр. 15-12-2004 | Отправлено: 13:14 12-03-2025
Enzo

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день, коллеги!
 
Решил переехать на nginx proxy manager c Apache.  
 
Использую на нем proxypass и заметил такую особенность. Веб сервер Apache умеет разрешать конечным узлам получать сертификаты SSL Letsencrypt - он не блокирует доступ к каталогу /.well-known на конечном узле, через Nginx я не могу это настроить. Доступ к каталогу не блокируется, пока на самом nginx не получен сертификат, как только он будет получен на конечном узле доступа к каталогу будет не доступен.
 
У меня за веб сервером находится synology, которому так же нужны сертификаты для работы(Synology Drive, cam) часть пользователей работают локально с ним. Раньше я получал сертификаты на веб сервере Apache, далее на синолоджи и все корректно работало и обновлялось. После переезда на Nginx синолоджи не может получит сертификаты.
   
Подскажите как поправить конфиг Nginx что бы прокси пасс пропускал запросы на выдачу сертификата, но и при этом сам автоматом обновлялся?
 
Вот лог с бэкенд сервера который пытается получить сертификат. Как видно из него к каталогу /.well-known/acme-challenge/ на сервере нет доступа боту letsencrypt, т.к. данный каталог занимает nginx и не проксирует его.

Код:
 
[2025-05-04T20:17:30+07:00]  INFO Try issue certificate 'llctm.ru_2025-05-04-20-17_30' EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:32+07:00]  INFO llctm.ru, www.llctm.ru: acme: Obtaining SAN certificate EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO llctm.ru: acme: Trying to present HTTP-01 EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO llctm.ru: acme present HTTP-01 challenges EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO llctm.ru: acme pre-check HTTP-01 challenges EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO Save '/usr/local/fastpanel2/web/letsencrypt/oJtsZ2iPMFLAuEGTIwJw' for verification EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO Check 'http://llctm.ru/.well-known/acme-challenge/oJtsZ2iPMFLAuEGTIwJw' URL EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO Correct response has been received from the verification URL 'http://llctm.ru/.well-known/acme-challenge/oJtsZ2iPMFLAuEGTIwJw' EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO Remove '/usr/local/fastpanel2/web/letsencrypt/oJtsZ2iPMFLAuEGTIwJw' path EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO Save '/usr/local/fastpanel2/web/letsencrypt/NNCV7UQJ2M0LyJlVhH0xaMyNJQfCblzY6Rxjeg3Vj4U' for verification EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO llctm.ru: acme: Trying to present HTTP-01 EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO llctm.ru: acme present HTTP-01 challenges EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO llctm.ru: acme pre-check HTTP-01 challenges EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO Save '/usr/local/fastpanel2/web/letsencrypt/HlMNdi619OeG6e0z0J43' for verification EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO Check 'http://www.llctm.ru/.well-known/acme-challenge/HlMNdi619OeG6e0z0J43' URL EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO Correct response has been received from the verification URL 'http://www.llctm.ru/.well-known/acme-challenge/HlMNdi619OeG6e0z0J43' EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO Remove '/usr/local/fastpanel2/web/letsencrypt/HlMNdi619OeG6e0z0J43' path EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO Save '/usr/local/fastpanel2/web/letsencrypt/EDlcTXgZXJ35UELEnrydpWcxNJjxxwhNwi7uWDMJXzE' for verification EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO llctm.ru: acme: Trying to clean up HTTP-01 challenges EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO llctm.ru: clean up HTTP-01 challenges EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO Remove '/usr/local/fastpanel2/web/letsencrypt/NNCV7UQJ2M0LyJlVhH0xaMyNJQfCblzY6Rxjeg3Vj4U' path EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO www.llctm.ru: acme: Trying to solve HTTP-01 EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:17:33+07:00]  INFO www.llctm.ru: acme: Start validate challenges to solve HTTP-01 EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:25:38+07:00] ERROR Unable to issue 'llctm.ru_2025-05-04-20-17_30' certificate. Error: 'error: one or more domains had a problem:
[www.llctm.ru] urn:ietf:params:acme:error:unauthorized :: 90.189.147.227: Invalid response from http://www.llctm.ru/.well-known/acme-challenge/EDlcTXgZXJ35UELEnrydpWcxNJjxxwhNwi7uWDMJXzE: 404
' EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
[2025-05-04T20:25:38+07:00] ERROR Certificate 'llctm.ru_2025-05-04-20-17_30' issue failure, description: 'error: one or more domains had a problem:
[www.llctm.ru] urn:ietf:params:acme:error:unauthorized :: 90.189.147.227: Invalid response from http://www.llctm.ru/.well-known/acme-challenge/EDlcTXgZXJ35UELEnrydpWcxNJjxxwhNwi7uWDMJXzE: 404
' EVENT_NAME=sslcertificate.creating SUBJECT=llctm.ru_2025-05-04-20-17_30 TASK_ID=41518749-fa57-47e2-8ff5-e03e9ff1ff25
 

 
Добавлено:
UPD 04.05.2025
Сам себе и отвечу на данный вопрос.
Открываем хост, заходим в раздел Advanced в директории
Custom Nginx Configuration вводим код:

Код:
 
rewrite ^(/.well-known/acme-challenge/.*)$ /internal$1 last;
 
location ~ ^/internal(/.well-known/acme-challenge/.*)$ {
 proxy_pass http://$server$1;
}

 
После этого конечный хост сможет получить сертификат, и сам nginx proxy manager сможет продолжать получать и обновлять сертификаты.
 

Всего записей: 95 | Зарегистр. 08-01-2006 | Отправлено: 16:39 04-05-2025 | Исправлено: Enzo, 17:15 04-05-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Enzo
можно и иначе, пробрасывать если нет файла

Цитата:
try_files $uri $uri/ @proxy;

либо через 404 ошибку  

Цитата:
error_page 404 = @proxy;

Всего записей: 16389 | Зарегистр. 20-09-2014 | Отправлено: 20:10 04-05-2025
Enzo

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii  
пришли, пожалуйста, пример полного конфигурационного файла с этими директивами.
 

Всего записей: 95 | Зарегистр. 08-01-2006 | Отправлено: 06:13 05-05-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Enzo
что то такое
 

Цитата:
location ~ ^/.well-known/acme-challenge {
   try_files $uri $uri/ @proxy;
}
location @proxy {
    proxy_pass http://$server;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $remote_addr;
}

 
не тестировал, проверяется наличие файла в файловой системе, а если его нет, то уже делается подзапрос с таким же URL.

Всего записей: 16389 | Зарегистр. 20-09-2014 | Отправлено: 09:00 05-05-2025 | Исправлено: Mavrikii, 17:55 05-05-2025
Baton34V



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В логах куча записей вида
*.*.*.* - - [06/May/2025:19:42:22 +0300] "GET / HTTP/1.0" 400 248 "-" "Expanse, a Palo Alto Networks company, searches across the global IPv4 space multiple times per day to identify customers&#39; presences on the Internet. If you would like to be excluded from our scans, please send IP addresses/domains to: scaninfo@paloaltonetworks.com"
причём с ip-шника моего же сервера (здесь заменил на *).
Как они делают get к моему серверу, так что в source ip-шник самого сервера оказывается? Или они в пакете подменяют ip и реальный ответ от моего сервера им не нужен?

Всего записей: 1088 | Зарегистр. 21-08-2009 | Отправлено: 19:51 06-05-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Baton34V

Цитата:
моего же сервера

полностью ваш или VPS?
в сети с сервером есть железки от Palo Alto? обычно это или VPN или файерволлы.

Всего записей: 16389 | Зарегистр. 20-09-2014 | Отправлено: 20:01 06-05-2025 | Исправлено: Mavrikii, 20:02 06-05-2025
Baton34V



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
полностью ваш или VPS?

vps арендованный. ХЗ чё там ещё в сети есть, но на этом ip-шнике только мой сервер висит.
ещё такое попадается:
*.*.*.* - - [06/May/2025:19:23:44 +0300] "GET / HTTP/1.1" 200 22 "-" "Mozilla/5.0 (compatible; CensysInspect/1.1; +https://about.censys.io/)"
 
Пытаюсь понять как можно дурить мозг nginx-у, чтобы в источнике его собственный ip-шник оказался.

Всего записей: 1088 | Зарегистр. 21-08-2009 | Отправлено: 20:10 06-05-2025 | Исправлено: Baton34V, 20:13 06-05-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Baton34V

Цитата:
Пытаюсь понять как можно дурить мозг nginx-у, чтобы в источнике его собственный ip-шник оказался.

возможно у вас есть какой то фронтенд, который и проксирует запросы к nginx

Всего записей: 16389 | Зарегистр. 20-09-2014 | Отправлено: 20:29 06-05-2025
Baton34V



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а сам nginx можно так настроить? возможно я в conf-ах что-то начудил.

Всего записей: 1088 | Зарегистр. 21-08-2009 | Отправлено: 20:50 06-05-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Baton34V

Цитата:
а сам nginx можно так настроить? возможно я в conf-ах что-то начудил

можно, если используется проксирование.

Всего записей: 16389 | Зарегистр. 20-09-2014 | Отправлено: 21:00 06-05-2025
toadmr

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет!
На сервере развернуты Docker-контейнеры с портами: 8080, 9093 и еще несколько.
Возникла необходимость вызывать их по суффиксам (по директориям), типа  
server.domain.local/folder1
server.domain.local/folder2
и т.д.
 
Настроил NGINX в роли обратного прокси, но что-то не пашет...
Конфиг:

Код:
 
server {
        server_name _;
        listen 80;
 
        proxy_set_header X-Scheme http;
        proxy_set_header X-Forwarded-Proto http;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-PORT $remote_port;
        proxy_set_header X-Real-IP $remote_addr;
 
        proxy_buffering on;
        proxy_buffer_size 8k;
        proxy_buffers 8 8k;
 
        access_log /var/log/nginx/sites-access.log  combined;
#       error_log /var/log/nginx/sites-error.log;
 
        location / {
                try_files $uri $uri/ =404;
 
                proxy_pass http://127.0.0.1:3000;
                proxy_http_version 1.1;
        }
 
        location = /favicon.ico {
                empty_gif;
                access_log off;
        }
        location ~* ^/alertman {
                proxy_pass http://127.0.0.1:9093;
                proxy_http_version 1.1;
        }
        location ~* ^/karma {
                proxy_pass http://127.0.0.1:8080;
                proxy_http_version 1.1;
        }
}
 

 
Что в логах NGINX, что в логах сайта пусто.
 
Вебсервер отвечает:
 
Не удается открыть эту страницу
server.domain.local ответа заняло слишком много времени
 
Доступен только ресурс опубликованный на порту 3000.
 
Что я делаю не так?

Всего записей: 67 | Зарегистр. 12-04-2023 | Отправлено: 14:17 20-05-2025 | Исправлено: toadmr, 14:31 20-05-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
toadmr

Цитата:
Что я делаю не так?

3000 порт бегает в том же контейнере, где и nginx с указанным конфигом?
почему 127.0.0.1, если это локалхост, а вы пытаетесь достучаться до другого контейнера?
 

Всего записей: 16389 | Зарегистр. 20-09-2014 | Отправлено: 19:09 20-05-2025
toadmr

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
3000 - первый контейнер
8080 - второй контейнер
9093 - третий контейнер
В последствии добавлю prometheus и еще пару вебсервисов.
Все на локалхосте
 
Строго говоря, с помощью докера на локалхосте крутятся несколько вебсервисов на разных портах, я же хочу чтобы они все работали на 80 порту, как только заработает, прикручу SSL.
 
NGINX не в докере

Всего записей: 67 | Зарегистр. 12-04-2023 | Отправлено: 19:59 20-05-2025 | Исправлено: toadmr, 22:34 20-05-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
toadmr

Цитата:
3000 - первый контейнер
8080 - второй контейнер
9093 - третий контейнер
В последствии добавлю prometheus и еще пару вебсервисов.
Все на локалхосте

а напрямую доступ есть по портам, не из nginx?

Всего записей: 16389 | Зарегистр. 20-09-2014 | Отправлено: 02:25 21-05-2025
toadmr

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Если идти по адресу server.domain.local:9093, доступ есть
 
Добавлено:
Как я уже написал, прямой доступ к графане, которая на порту 3000, есть.
Доступна по имени: server.domain.local
А то что с подпапками не работает.
То что хотелось бы открывать по имени: server.domain.local/folder1(2,3, etc)

Всего записей: 67 | Зарегистр. 12-04-2023 | Отправлено: 09:02 21-05-2025 | Исправлено: toadmr, 09:09 21-05-2025
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
toadmr

Цитата:
server.domain.local

тогда почему указываете 127.0.0.1 в конфиге?

Всего записей: 16389 | Зарегистр. 20-09-2014 | Отправлено: 09:15 21-05-2025
toadmr

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
потому что имя server.domain.local используется для доступа с другого компа, а 127.0.0.1 используется, потому что контейнеры и nginx находятся на одном сервере

Всего записей: 67 | Зарегистр. 12-04-2023 | Отправлено: 09:52 21-05-2025
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Nginx


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru