Удалить страницу приветствия nginx по умолчанию, когда доступ напрямую из ip-адреса

На моем сервере ubuntu я устанавливаю nginx и настраиваю виртуальный хост, используя эту статью. https://www.digitalocean.com/community/articles/how-to-set-up-nginx-virtual-hosts-server-blocks-on-ubuntu-12-04-lts--3

Доменное имя виртуального хоста похоже на www.example.com. Когда я перехожу на сайт www.example.com, я вижу свою страницу индекса приложений. Однако, когда я перехожу к реальному ip-адресу, я все еще вижу страницу приветствия nginx. Что я могу сделать, чтобы удалить эту страницу приветствия или указать на www.example.com, если кто-то использует ip-адрес для доступа к моему сайту?

Я установил запись A, чтобы указать ip xxx.xxx.xxx.xxx на www.example.com.

Ответ 1

Я думаю, что при первом создании nginx он поставляется с виртуальным хостом по умолчанию. Вы пытались удалить это? Вы пытались удалить символическую ссылку? Третий вариант - добавить "запретить все"; на месте/виртуального хоста по умолчанию.

Я не совсем уверен, что это сработает, и я не могу проверить его прямо сейчас. Если вышеуказанное не работает, попробуйте это: http://nginx.org/en/docs/http/request_processing.html#how_to_prevent_undefined_server_names

http://your-server-ip/ - это запрос с именем сервера undefined. Вы можете заблокировать его с помощью:

server {
    listen      80;
    server_name "";
    return      444;
}

Ответ 2

Вам нужно удалить файл default, расположенный в /etc/nginx/sites-enabled:

rm /etc/nginx/sites-enabled/default

Затем перезапустите nginx:

service nginx reload

Ответ 3

Если вы удалили default под /etc/nginx/sites-available и перезапустили nginx, а страница приветствия все еще отображается, посмотрите, есть ли default.conf в разделе /etc/nginx/conf.d и удалите его, а затем перезапустите nginx.

Ответ 4

Настройка на

server {
    listen      80;
    server_name xxxx;
    return      444;
}

Я получаю 502 для всех URI, включая URL-адрес моего приложения.


Я не нашел папку sites_enabled в /etc/nginx, вместо этого мой сайт по умолчанию находится в /usr/share/nginx/html

Поэтому я создаю еще одну пустую страницу, расположенную в

/usr/share/nginx/html/blank

создать пустой index.html

# echo >> index.html

затем отредактируйте файл default.conf

location / {
    root   /usr/share/nginx/html/blank;
    index  index.html ;
}

тогда домашняя страница становится пустой, скрывая информацию nginx.


Кстати, если вы удалите

location / {
    root   /usr/share/nginx/html/blank;
    index  index.html ;
}

или установить

location / {
    try_files $uri $uri/ = 404;
}

Вы получите 404 на домашней странице, но показывает "версию Nginx", что не очень хорошо.

Ответ 5

Расположение (страница приветствия nginx по умолчанию) в Ubuntu:

/var/www/html

Вы можете найти его там и отредактировать.

примечание: разные дистрибутивы файлов nginx имеют разные местоположения по умолчанию.