Heggi Posted March 7, 2014 Делаю роутер для Free Wifi Hotspot с рекламой. Рекламная страница должна показываться один раз при подключении. Т.е. юзер подключается к вафле, открывает браузер, вместо его любимого сайта открывается рекламка с кнопкой продолжить. Юзер жмякает по кнопке продолжить и его редиректит на его любимый сайт. В принципе все сделал: Завернул с помощью iptables весь трафик по 80 порту в nginx, установленный на роутере. nginx на любой url отдает 302 редирект на страничку с рекламой Со странички по нажатию на кнопку открываем доступ, делаем переход на исходный сайт, но вот тут подстава: браузер запомнил, что на mail.ru (к примеру) отдавался код 302 и сразу уходит снова на страничку с рекламой. Делал 5-ти секундную задержку для перехода (чтобы Iptables точно успевал отработать) - не помогло. Через пару минут браузер идет сразу на mail.ru Конфиг nginx: server { listen 80; server_name localhost; access_log /var/log/nginx/access.log vhost_ip_full_format; root /var/www/htdocs; index index.php; location / { if ($host !~ ^(192.168.100.1)$ ) { add_header Cache-Control "no-cache, no-store"; expires 0; rewrite ^ http://192.168.100.1/index.php?host=$host$request_uri redirect; } } location ~ \index.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/htdocs$fastcgi_script_name; include fastcgi_params; } } Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Abram Posted March 7, 2014 Дело не в браузере, а в iptables. Редирект остаётся в conntrack. Попробуйте его оттуда удалять (см. conntrack-tools). Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted March 7, 2014 connection close!!! а у вас походу кипалив с нгинхом, вот иптаблес и продолжает пересылать пакеты ибо соединение ещё активно, а оно у него в контраке должно быть... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Heggi Posted March 11, 2014 Если делаю редирект на любой другой сайт, то все проходит нормально. Как может быть keepalive с nginx, если я по-сути по разным адресам скачу? mail.ru -> 192.168.100.1 -> mail.ru Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Heggi Posted March 11, 2014 Хм. и правда keepalive_timeout 0 помог, Правда IE все-равно тупит и только со второго раза переходит куда надо. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted March 12, 2014 Сделайте чтобы нгинх отдавал: connection: close заголовок, ну может ещё в нём настройки есть для этого. и браузеры будут сами рвать соединение после получения ответа. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...