LINUX.ORG.RU

Ответ на: комментарий от ksenofor

Ну тогда только первый вариант, там нет скриптов, всё в конфиге nginx будет. Еще модуль с lua есть, на любителя

disarmer ★★★
()
Ответ на: комментарий от anonymous

301 на два разных url по round-robbin? А в чём смысл? Я себе даже use-case представить не могу.

Молчим уже о том, что 301 закешен будет и это полностью теряет смысл.

Правильный вариант — именно что через прокси. В общем, ТС хочет очень странного или не помнимает, как всё это работает.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от beastie

PS: Напомню ещё, что 301 — это Moved Permanently. На два разных URL это лишено всякого смысла.

beastie ★★★★★
()
Ответ на: комментарий от beastie

Я себе даже use-case представить не могу.

Посмотри предыдущие темы ТС. Половину посетителей на сайт, другую половину - в ад за малварью

router ★★★★★
()
Ответ на: комментарий от router

Бугага. Вы серьезно? Нет, там рекламная компания гугла. Есть 2 партнерские ссылки: одна на одном сайте, другая на другом. Ключевики одни и те же. Можно в гугле настроить 2 компании на 2 разных сайта, с 2мя разными бюджетами, но проще ж ведь 1 раз прописать в конфиги, не так ли?

ksenofor
() автор топика
Ответ на: комментарий от beastie

Кажется это больше всего похоже на решение. Я что-то подобное пробовал делать, но с proxy_pass он 400ю ошибку выдавал, поэтому я решил сделать редиректом (как получилось). Сейчас попробую Ваш вариант.

ksenofor
() автор топика
Ответ на: комментарий от beastie

Увы, этот вариант также не работает - выдавая: «На сайте производятся технические работы». Т.е. он видимо не может все запроксировать, что там есть. Я кажется придумал решение. Оно тупое и прямо в лоб, но для меня должно сойти. Делать $ nginx -s reload по крону, подменяя файлик sites-enabled каждый раз, на другой сайт, через минуту.)

ksenofor
() автор топика
Ответ на: комментарий от ksenofor

Какой ужас.

Делать $ nginx -s reload по крону, подменяя файлик

Для этого даже специальный модуль сделали. Судя по документации, он должен работать как-то так.

split_clients "${remote_addr}AAA" $goto {
    50.0%           "http://my-site.ru";
    *               "http://my-another-site.ru";
}

return 301 $goto;
fjoe
()
Ответ на: комментарий от fjoe

Можно полную версию конфига?

Надо с moy-sayt.ru алиаса перебрасывать на эти 2.

Я попробовал

server { listen 80; server_name moy-sayt.ru;

split_clients $goto { 50% "http://another1.ru"; * "http://another-site.ru"; }

return 301 $goto; }

Валится с ошибкой. :[

ksenofor
() автор топика
Ответ на: комментарий от ksenofor
Валится с ошибкой. :[

Очень содержательно.

Вот максимально упрощённый рабочий конфиг:

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /run/nginx.pid;


events {
    worker_connections  1024;
}


http {

    split_clients "${remote_addr}-{$query_string}" $goto {
        50.0%           "http://127.0.0.1:8081";
        *               "http://127.0.0.1:8082";
     }

    server {
        listen 8080;
        return 301 $goto;
    }


    server {
        listen 8081;
        return 200 "server1\n";
    }

    server {
        listen 8082;
        return 200 "server2\n";
    }
}

Тестируем:

$ wget -qO - "127.0.0.1:8080/?a=1234"
server2
$ wget -qO - "127.0.0.1:8080/?a=123"
server1

С доменами уже самостоятельно как-нибудь. Всё равно их потом опять менять с http://another1.ru на реальные.

fjoe
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.