NGINX перенаправляют все домены одному, но не собственные общедоступные и частные IP-адреса сервера

Я заставил Belkin F5D7050 работать в соответствии с Ubuntu, хотя я, кажется, вспоминаю некоторую сумму ручной конфигурации (который, возможно, даже включал вручную загрузку и компиляцию драйверов). Конкретная модель, которую я имел (то есть существуют многоуровневые модели F5D7050) используемый или чипсет Ralink или Realtek (точно, который я не могу вспомнить), но я понимаю, что некоторые изменения используют различные чипсеты, которые могут или не могут поддерживаться, таким образом, Вы взяли бы на себя риск на том.

Еще лучше я вспоминаю, что там быть где-нибудь на Wiki Ubuntu является таблицей совместимых беспроводных карт и адаптеров, на которые необходимо смотреть; попытайтесь запуститься здесь, и Вы могли бы найти его (если это даже все еще существует): https://help.ubuntu.com/community/WifiDocs.

3
задан 27 December 2012 в 00:51
2 ответа

У меня все заработало. Самир был близок, но я не уверен, что он правильно понял мой вопрос. Это решение моей проблемы;

server {
    listen 80;
    server_name www.mydomain.com 123.123.123.123 456.456.456.456;
}

server {
    listen 80 default_server;
    server_name _;
    rewrite ^ http://www.mydomain.com$request_uri?;
}

С помощью вышеизложенного вы можете загрузить сайт через www.mydomain.com или прямые внутренние и публичные IP-адреса, но если вы попытаетесь загрузить его любым другим способом, вы будете перенаправлены.

Как ни странно ... Это первый пример, который я пробовал выше. Я не знаю, почему это не сработало тогда и работает сейчас. Возможно, потому, что "listen 80 default" устарел в пользу "listen 80 default_server". Или, возможно, я запутался, что будет тестировать все 4 узла. В любом случае, похоже, сейчас это определение работает!

1
ответ дан 3 December 2019 в 07:33
server {
    listen 456.456.456.456:80;
    server_name mydomain.com;
    # I am more lenient with internal and this will bypass the LB
}

server {
    listen 80 default;
    server_name _;
    if ($host != www.mydomain.com){
        rewrite ^ http://www.mydomain.com$request_uri?;
    }
}

Если внутреннее и внешнее не отличаются, то вы можете отказаться от первого раздела сервера. В идеале вас должен беспокоить только заголовок $ host, который является стандартным заголовком HTTP. С HTTP-балансировщиком нагрузки вы должны использовать IP-адрес балансировщика нагрузки, а не общедоступный IP-адрес вашего компьютера, потому что это будет обходить LB.

0
ответ дан 3 December 2019 в 07:33

Теги

Похожие вопросы