Nginxの特定の仮想ホストにfavicon.icoを設定する方法は?


26

Nginxを初めてWebサーバーとして使用しています。設定するのに何の問題もありませんでした。問題は、デザイナーが「タイトルバーのアイコン」を「そこに置いて」送ってくれないかと私に尋ねたときに起こりました。

# /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

魅力のように働いた。他の人に起こった場合はここに残します。


600許可は、umaskに関連している場合があります(そのユーザーのumaskは、たとえば077に設定されています)。
jcisio

権限の問題も私のためにそれを修正しました!
クズカイ14年

ここでも権限の問題。おそらく、pngをサイトにアップロードしてicoファイルを作成したことが原因です。
アーロンストーク

回答:


14

favicon.icoファイルは、nginx rootディレクティブで定義されているWebサイトのルートディレクトリに配置する必要があります。または、HTMLで次のコードを使用してURLをファビコンに渡すことができます。

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


そこにfavicon.icoファイルがあります...それでも動作しません
エルザミー

1
からのチェックgrep favicon.ico nginx-{access,error}.logとチェック出力file favicon.ico-IEはICO形式以外を理解しません。また、構成にはVirtualHostが1つだけ表示されます。
AlexD

1
phpがらくたと良い、静的ファイルのセットアップは良くない
ホルムズ

55

これはsites-available/[vhostconfigfile]、サーバーディレクティブの下で特定のvhost config()で行う方法です。

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

そうすれば、HTMLを一切使用せずに、好きな場所に置くことができます。

「.X」はまったく必要ではなく、このファイル名を好きなものに変更できることを示すだけです。私は単に「.X」を使用します。参照している特定のサブドメインを識別するためのプレースホルダーとして。純粋に組織向けです。


これは私の状況に最適です。サーバー用のWebminおよびphpVirtualBoxへのリンクを含む簡単なindex.htmがあり、3つすべてに同じカスタムファビコンが必要です。
-RyanScottLewis

なぜあなた=はそこに必要ですか?
ホルムス

4
=は必須ではないかもしれませんが、控えめな高速化である可能性があり、正しいです。ドキュメントを参照してください:nginx.org/en/docs/http/ngx_http_core_module.html#location
Scott Stafford

まず、.Xin が必要/var/www/media/images/favicon.X.icoですか?第二に、私はこのソリューションを投稿どおりに試しましたが、まだ機能していません。おそらくこれは動作しませんauto_index on;か?おそらく、@ AlexDの推奨が必要です。
JamesThomasMoon1979

そのとおりです。「。X」は必要ありません。実行するさまざまなサイトの多くのファビコンがすべて同じフォルダーに配置されているため、これが一意の名前です。「favicon.ico」として使用するファイルの正確なファイル名にする必要があります。上記のディレクティブにより、実際のファイルに任意の名前を付けることができ、ウェブサーバーがクライアントのブラウザに正しいファイル名「favicon.ico」を提供できるようになります。
エフィッカー

0

つまり、仮想ホストのファイルが(ルートディレクトリ)から取得される場合は常に、その特定のfavicon.icoファイルを配置する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.