Пэтро 18 Опубликовано: 2014-01-06 15:03:12 Share Опубликовано: 2014-01-06 15:03:12 Есть сервер статистики на apache2. при минусовом балансе с помощью /sbin/iptables -t nat -A PREROUTING -s {client_ip} -p tcp -m tcp --dport 80 -j DNAT --to-destination {ip_server_statistiki} Вместо веб-страниц открывается страница статистики. Для этого в корне сервера лежит .htaccess RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule (.*) index.php [L,QSA,NC] Все было бы хорошо, но если открыта страница типа "http://local.com.ua/forum/index.php" т.е. содержащая слэши, то js и css, который есть на странице статистики не подгружается.. Как исправить? Ссылка на сообщение Поделиться на других сайтах
BUM 242 Опубліковано: 2014-01-06 21:36:17 Share Опубліковано: 2014-01-06 21:36:17 Очивидно же) /sbin/iptables -t nat -A PREROUTING -s {client_ip} ! -d {ip_server_statistiki} -p tcp -m tcp --dport 80 -j DNAT --to-destination {ip_server_statistiki} Ссылка на сообщение Поделиться на других сайтах
John_Doe 301 Опубліковано: 2014-01-06 22:04:58 Share Опубліковано: 2014-01-06 22:04:58 (відредаговано) . Відредаговано 2014-01-06 22:09:16 John_Doe Ссылка на сообщение Поделиться на других сайтах
Пэтро 18 Опубліковано: 2014-01-07 10:29:11 Автор Share Опубліковано: 2014-01-07 10:29:11 Очивидно же) /sbin/iptables -t nat -A PREROUTING -s {client_ip} ! -d {ip_server_statistiki} -p tcp -m tcp --dport 80 -j DNAT --to-destination {ip_server_statistiki} Что это дает? Ссылка на сообщение Поделиться на других сайтах
onorua 126 Опубліковано: 2014-01-07 10:44:42 Share Опубліковано: 2014-01-07 10:44:42 Вам нужно на веб-сервере статистики запретить клиентам кеширование. Я честно не помню как это делается на апаче, но можете погуглить. Ссылка на сообщение Поделиться на других сайтах
BUM 242 Опубліковано: 2014-01-07 10:50:02 Share Опубліковано: 2014-01-07 10:50:02 поставить nginx вместо апача) server { listen 80; server_name noaccess; access_log off; log_not_found off; location / { root /var/www/nginx-default/noaccess; index index.html; } error_page 404 /index.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/nginx-default; } } Очивидно же) /sbin/iptables -t nat -A PREROUTING -s {client_ip} ! -d {ip_server_statistiki} -p tcp -m tcp --dport 80 -j DNAT --to-destination {ip_server_statistiki} Что это дает? А внимательно посмотреть на правило? Вам то надо весь трафик на 80-й порт заворачивать на сервер, естественно кроме самого сервера. Ссылка на сообщение Поделиться на других сайтах
Пэтро 18 Опубліковано: 2014-01-07 21:45:46 Автор Share Опубліковано: 2014-01-07 21:45:46 Блин, проблема в том, что юзер открывая страничку с "плохими" символами в url открывают страницу статистики index.php но js и css не грузятся.... точнее они загружают тот-же index.php т.е. .htaccess должен реагировать по разному на то что требуется сss или index.php Ссылка на сообщение Поделиться на других сайтах
Abram 98 Опубліковано: 2014-01-07 21:51:29 Share Опубліковано: 2014-01-07 21:51:29 1) Перенаправлять -j REDIRECT --to 8000 (да-да, на локальный тазик) 2) На этом же локальном тазике запустить nginx с таким конфигом: worker_processes 1; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; server { listen 8000; server_name localhost; access_log /var/log/nginx/redirect.access.log; location / { if ( $http_user_agent ~ ^uTorrent ) { return 404; } if ( $http_user_agent ~ Windows-Update-Agent ) { return 404; } if ( $http_user_agent ~ "Microsoft NCSI" ) { return 404; } if ( $http_user_agent ~ "ESS Update" ) { return 404; } if ( $http_user_agent ~ "Google Update" ) { return 404; } if ( $http_user_agent ~ "Microsoft-CryptoAPI" ) { return 404; } if ( $http_user_agent ~ "Microsoft BITS" ) { return 404; } if ( $http_user_agent ~ MSDW ) { return 404; } if ( $http_user_agent ~ ^SeaPort ) { return 404; } if ( $http_user_agent ~ ^Windows-Media-Player ) { return 404; } if ( $http_user_agent ~ "Google Update" ) { return 404; } if ( $http_user_agent ~ ^GoogleEarth ) { return 404; } if ( $http_user_agent ~ ^Skype ) { return 404; } if ( $http_user_agent = "MailRuSputnik" ) { return 404; } if ( $http_user_agent ~ ^Ya\.Online ) { return 404; } if ( $http_user_agent ~ ^MRA ) { return 404; } if ( $http_user_agent ~* ^MediaGet ) { return 404; } if ( $http_user_agent ~ ^BTWebClient ) { return 404; } if ( $http_user_agent ~ ^Syncer ) { return 404; } if ( $http_user_agent = "TMUFE" ) { return 404; } if ( $http_user_agent ~ ^Akamai\ NetSession\ Interface ) { return 404; } if ( $http_user_agent ~ ^VKSaver ) { return 404; } if ( $http_user_agent ~ DrWebUpdate ) { return 404; } if ( $http_user_agent = "" ) { return 404; } if ( $host ~ geo\.kaspersky\.com ) { return 404; } if ( $host ~ (su|download|webrep).*\.avast\.com ) { return 404; } if ( $host = wi2geo.mobile.yandex.net ) { return 404; } if ( $host ~ bar.*\.yandex\.ru ) { return 404; } if ( $host ~ (ping|master)\d*\.(dyngate|teamviewer)\.com ) { return 404; } if ( $host ~ sitecheck\d*\.opera\.com ) { return 404; } if ( $host ~ (xml\.my|mailsputnik|maps)\.mail\.ru ) { return 404; } if ( $host = onlineconfigservice.ubi.com ) { return 404; } if ( $host = com-services.pandonetworks.com ) { return 404; } if ( $host ~ ticno\.com ) { return 404; } if ( $host ~ conduit ) { return 404; } if ( $host ~ cbox\.ws ) { return 404; } if ( $host ~ (pricelist|metrics)\.skype\.com ) { return 404; } if ( $host = weather.service.msn.com ) { return 404; } if ( $host = advstat.letitbit.net ) { return 404; } if ( $host = skymonk.net ) { return 404; } if ( $host ~ counter ) { return 404; } if ( $host ~ pluraserver ) { return 404; } if ( $host ~ apps.bittorrent.com ) { return 404; } if ( $host ~ offers.bittorrent.com ) { return 404; } if ( $host ~ tracker ) { return 404; } if ( $request_uri ~* (update|feed|announce|rss|xml|json|oauth) ) { return 404; } if ( $request_uri ~* (toolbar|suggest) ) { return 404; } if ( $request_filename ~ \.(ico|gif|jpg|png) ) { return 404; } if ( $request_filename ~ \.(css|xml|js|swf|flv) ) { return 404; } if ( $request_filename ~ \.(crl|txt|cab|msi|jar) ) { return 404; } if ( $host ~ norton ) { return 404; } rewrite ^ http://address_of_stat_server/ redirect; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } Это правильней, чем тупая подмена страницы.А! Кстати! Отдельным правилом в iptables (перед редиректом) разрешить прохождение трафика к серверу статистики. Иначе получается цикличный редирект. Ссылка на сообщение Поделиться на других сайтах
Пэтро 18 Опубліковано: 2014-01-07 21:54:38 Автор Share Опубліковано: 2014-01-07 21:54:38 Нашел..... всего лишь надо было указать полный путь к файлам css и js слеш перед путем все исправил!! <script src="/js/jquery.js"></script> Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас