Налаштування Nginx для того, щоб зловити всіх невпорядкованих привидів


41

Якщо у мене вже є купа віртуальних хостів, як я можу створити віртуальний хост для обробки запитів, які не відповідають жодному з віртуальних хостів? (тобто доступ через IP, інший домен, що посилається на IP, .etc .etc)

Відповіді:


52

ім’я_сервера _; і типовий_сервер у конфігурації прослуховування - те, що ти шукаєш.

Приклад:

server {

   listen 80 default_server;
   server_name _;

   root /var/www/default; (or wherever)    

}

1
А для випадку https:listen 443 ssl default_server;
James T Snell

Коли я це дозволю, мій owncloud 9не відповість. Чому? VHOST Owncloud має ім'я_сервера і не є сервером за замовчуванням.
Корні

Я не використовую 80лише 443 є відкритим.
Корні

Якщо я додаю це, інші мої фрагменти конфігурації в / etc / nginx / включеному сайтах / ігноруються. /var/www/defaultу цьому випадку переходять усі домени . Як мені замовити фрагменти?
rubo77

Я можу створити vhos для postgresql з'єднань?
Ерлон Чарльз

4

Якщо ви використовуєте SSL, тоді вам потрібна додаткова сантехніка для сервера default_server - сертифікат і ключ (який можна підписати самостійно).

server {
    server_name _;
    listen 80 default_server;
    listen 443 ssl default_server;
    ssl_certificate <path to cert>;
    ssl_certificate_key <path to key>;
    return 404; # or whatever
}

Nginx спробує прийняти SSL-з'єднання на сервері, що відповідає IP / порту default_server. Якщо такому серверу відсутній cert / key, nginx перестане з'єднання. Він не буде пробувати інші сервери. Тому не забувайте cert / key.


Важлива примітка про сертифікат SSL! Якщо сертифікат відсутній, весь сервер nginx не запуститься (навіть незважаючи на nginx -tте, що "добре")
Philipp

3
server {
  listen 80 default_server;
  listen 443 ssl default_server;
  listen [::]:80 default_server;
  listen [::]:443 ssl default_server;

  server_name _;
  root /path/to/default;
}

Записи призначені для порту 80 (HTTP), порту 443 (HTTPS), порту 80 IPv6 та порту 443 IPv6 відповідно.

Ви можете розглянути можливість додавання, log_not_found off;щоб уникнути додавання запису журналу для сторінки, яку не знайдено.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.