Назад | Перейти на главную страницу

Как установить favicon.ico для определенного виртуального хоста на Nginx?

Я впервые использую Nginx в качестве своего веб-сервера. У меня не было проблем с настройкой, и все работает отлично. Проблема возникла, когда дизайнер спросил меня, может ли он отправить мне «значок в строке заголовка», чтобы «поместить его туда».

# /opt/nginx/conf/nginx.conf
...
server {
    listen 80 ;
    server_name *.website.com website.com;
    root /home/webuser/sites/website;
}

Мой каталог:

/home/webuser/sites/website/
|_ index.html
|_ main.css
|_ favicon.ico

Можно ли разместить на каждом виртуальном хосте определенный файл favicon.ico? Куда вы должны поместить этот файл и как его настроить?

РЕДАКТИРОВАТЬ:

Я просто понял, что это совсем другая проблема. Оба ответа были правильными, но моей проблемой было разрешение. Я не знаю, почему файл favicon.ico получил разрешение 600 и, конечно, в тот момент, когда я это сделал:

chmod +r favicon.ico

Работал как шарм. Я оставлю это здесь, если это случится с кем-то другим.

Вот как мы это делаем в нашей конкретной конфигурации vhost (sites-available/[vhostconfigfile]) в директиве сервера:

location = /favicon.ico {
    alias /var/www/media/images/favicon.X.ico;
}

Таким образом, вы можете разместить его где угодно, без какого-либо HTML.

".X." совсем не требуется, и только означает, что вы можете изменить это имя файла на любое другое. Я просто использую ".X". в качестве заполнителя для определения конкретного поддомена, на который я ссылаюсь. Это чисто для организации.

favicon.ico файл должен быть помещен в корневой каталог веб-сайта, который определяется nginx root директива. Или вы можете передать URL-адрес в значок, используя следующий код в HTML:

<link rel="shortcut icon" href="http://example.com/myicon.ico" />

Это означает, что куда бы файлы виртуального хоста ни были взяты (корневой каталог), вы должны поместить этот конкретный файл favicon.ico.