2013-05-21 2 views
-1

Использование nginx в качестве обратного прокси-сервера Я отметил, что если сайт указан на сервере, но на самом деле он не существует, вы получаете доступ к существующему сайту на сервере, а не к домену. найденное сообщение или подобное.Nginx Reverse Прокси-сервер без прослушивания поймать все

т.е., что ваш конфигурационный блок прослушивает portal.test.org точки пользователя есть CNAME к системе Nginx, но с областью заголовка smartportal.test.org

или сказать они указывают на сайт как portal.test2.org

Может кто-то направить меня на следующий

а. Как nginx решает, какой сайт будет возвращать, если он не существует как виртуальный хост b. Как поймать любой домен, который не указан, и вернуть страницу по умолчанию, которая сообщает пользователям, что этот домен не существует на этом хосте.

Надеюсь, кто-то может помочь. Я пробовал поиск по Google, но иногда думаю, что он знает правильные условия.

Большое спасибо

ответ

1

вы должны использовать default_server параметр listen директивы и server_name директивы.

ваши вопросы

  • Как Nginx решает, какой сайт, чтобы вернуться, когда он не существует в качестве виртуального хоста

    слушать [default_server]

    Если директива имеет параметр default_server , то входящий в комплект сервер сервер {...} будет сервером по умолчанию для адреса: порт . Это полезно для виртуального хостинга, основанного на имени, где вы хотите, чтобы указывал блок сервера по умолчанию для имен хостов, которые не соответствуют никаким директивам server_name . Если нет директив с параметром default_server, то по умолчанию сервер будет первым сервером , в котором появится пара адресов: порт.


    имя_серв

    Эта директива выполняет два действия:

    сравнивает хост-заголовок запроса входящего HTTP против сервера {...} блоки в файлах конфигурации Nginx и выбирает первый, который соответствует. Именно так определяются виртуальные серверы. имен серверов обрабатываются в следующем порядке:

    полных, 1. Определения статических имена

    2.- имена с групповым символом в начале имени - * .example.com

    3. - имена с подстановочным знаком в конце имени - www.example.*

    4.- имена с регулярными выражениями

    Если совпадений не найдено, сервер {...} блок в конфигурационный файл будет использоваться на основе следующей последовательности:

    1. - блок сервера с сопрягая послушайте директиву помечен как [по умолчанию | default_server]

    2.- первого блок сервера с сопрягая слушать директивы (или неявные слушать 80;)

  • Как поймать любой домен, которые не указаны и вернуть страницу по умолчанию, который сообщает пользователям этот домен не существует на этом хосте

    server { 
        listen 1.2.3.4:80 default_server; 
        server_name _ ""; 
        location/{ 
        alias /var/www/html/domain-does-not-exists.html; 
        } 
    } 
    
    server { 
        listen 1.2.3.4:80 ; 
        server_name portal.test.org; 
        location/{ 
         ... your site ... 
        } 
    } 
    

 Смежные вопросы

  • Нет связанных вопросов^_^