Перейти к содержимому
Калькуляторы

nginx запретить браузеру кешировать редиректы

Делаю роутер для 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;
   }
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дело не в браузере, а в iptables. Редирект остаётся в conntrack. Попробуйте его оттуда удалять (см. conntrack-tools).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

connection close!!!

а у вас походу кипалив с нгинхом, вот иптаблес и продолжает пересылать пакеты ибо соединение ещё активно, а оно у него в контраке должно быть...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если делаю редирект на любой другой сайт, то все проходит нормально.

Как может быть keepalive с nginx, если я по-сути по разным адресам скачу? mail.ru -> 192.168.100.1 -> mail.ru

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм. и правда keepalive_timeout 0 помог, Правда IE все-равно тупит и только со второго раза переходит куда надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сделайте чтобы нгинх отдавал: connection: close заголовок, ну может ещё в нём настройки есть для этого. и браузеры будут сами рвать соединение после получения ответа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.