Как установить 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
Работал как шарм. Я оставлю это здесь, если это случится с кем-то еще.
3 ответа
favicon.ico
файл должен быть помещен в корневой каталог сайта, который определяется nginx root
директивы. Или вы можете передать URL-адрес favicon, используя следующий код в HTML:
<link rel="shortcut icon" href="http://example.com/myicon.ico" />
Вот как мы это делаем в нашем конкретном конфиге vhost (sites-available/[vhostconfigfile]
) в соответствии с директивой сервера:
location = /favicon.ico {
alias /var/www/media/images/favicon.X.ico;
}
Таким образом, вы можете поместить его в любом месте, без каких-либо HTML.
".X." не требуется вообще, и означает только то, что вы можете изменить это имя файла на что угодно. Я просто использую ".X." в качестве заполнителя для определения конкретного субдомена, на который я ссылаюсь. Это чисто для организации.
Это означает, что куда бы вы ни брали файлы виртуального хоста (корневой каталог), вы должны поместить этот конкретный файл favicon.ico.