Nginx高级配置-官网logo之favicon.ico
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.浏览器会默认帮咱们访问官网的图标
1>.浏览器访问网站"http://node101.yinzhengjie.org.cn/"
2>.使用curl命令访问
[[email protected] ~]# curl http://node101.yinzhengjie.org.cn/ DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>字体的样式title> <style> .hello{ color: red; font-size: 30px; font-family: "curlz mt","华文彩云","arial", "微软雅黑"; } style> head> <body> <p class="hello">2019尹正杰到此一游,在这里提前祝大家2020年新年快乐~p> body> html> [[email protected] ~]#
3>.可以看到后台是有日志输出的
[[email protected] ~]# > /yinzhengjie/softwares/nginx/logs/access_json.log #在访问之前,建议大家把日志清空,看的比较明显哈~当然,我说的是测试环境。
[[email protected] ~]#
[[email protected] ~]# tail -10f /yinzhengjie/softwares/nginx/logs/access_json.log #可以看到浏览器的访问记录被记录了404错误信息,而使用命令行curl访问的确是200正常访问。
{"@timestamp":"2019-12-22T11:10:40+08:00","host":"172.30.1.101","clientip":"172.30.1.254","size":571,"responsetime":0.000,"upstreamtime":"-","upstreamhost":"-","http_host":
"node101.yinzhengjie.org.cn","uri":"/favicon.ico","domain":"node101.yinzhengjie.org.cn","xff":"-","referer":"http://node101.yinzhengjie.org.cn/","tcp_xff":"",
"http_user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36","status":"404"}
{"@timestamp":"2019-12-22T11:47:35+08:00","host":"172.30.1.101","clientip":"172.30.1.101","size":362,"responsetime":0.000,"upstreamtime":"-","upstreamhost":"-","http_host":
"node101.yinzhengjie.org.cn","uri":"/index.html","domain":"node101.yinzhengjie.org.cn","xff":"-","referer":"-","tcp_xff":"","http_user_agent":"curl/7.29.0","status":"200"}
3>.访问虚拟主机"http://www.yinzhengjie.org.cn/",发现也出现类似的问题
4>.访问虚拟主机"http://mobile.yinzhengjie.org.cn/",发现也出现类似的问题
5>.访问"favicon.ico"依旧会出现问题
favicon.ico文件是浏览器收藏网址时显示的图标,当客户端使用浏览器问页面时,浏览器会自己主动发起请求获取页面的favicon.ico文件,但是当浏览器请求的favicon.ico文件不存在时,服务器会记录404日志,而且浏览器也会显示404报错。
二.关于favicon.ico的解决办法
既然知道favicon.ico是啥了,那就好办了,找一个公司logo放上去就ok啦。
1>.从互联网上下载一个logo咱们自己来用于模拟试验
[[email protected] ~]# ll
total 0
[[email protected] ~]#
[[email protected] ~]# wget https://www.jd.com/favicon.ico
--2019-12-22 12:05:35-- https://www.jd.com/favicon.ico
Resolving www.jd.com (www.jd.com)... 220.194.105.131, 2408:8710:20:1140:8000::3
Connecting to www.jd.com (www.jd.com)|220.194.105.131|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 25214 (25K) [image/x-icon]
Saving to: ‘favicon.ico’
100%[==================================================================================================================================>] 25,214 --.-K/s in 0.002s
2019-12-22 12:05:35 (10.0 MB/s) - ‘favicon.ico’ saved [25214/25214]
[[email protected] ~]#
[[email protected] ~]# ll
total 28
-rw-r--r-- 1 root root 25214 Mar 25 2016 favicon.ico
[[email protected] ~]#
[[email protected] ~]#
[[email protected] ~]# ll
total 28
-rw-r--r-- 1 root root 25214 Mar 25 2016 favicon.ico
[[email protected] ~]#
[[email protected] ~]#
[[email protected] ~]# wget https://img.alicdn.com/tps/i3/T1OjaVFl4dXXa.JOZB-114-114.png
--2019-12-22 12:07:01-- https://img.alicdn.com/tps/i3/T1OjaVFl4dXXa.JOZB-114-114.png
Resolving img.alicdn.com (img.alicdn.com)... 111.206.4.120, 111.206.4.115
Connecting to img.alicdn.com (img.alicdn.com)|111.206.4.120|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4540 (4.4K) [image/png]
Saving to: ‘T1OjaVFl4dXXa.JOZB-114-114.png’
100%[==================================================================================================================================>] 4,540 --.-K/s in 0s
2019-12-22 12:07:01 (1.07 GB/s) - ‘T1OjaVFl4dXXa.JOZB-114-114.png’ saved [4540/4540]
[[email protected] ~]#
[[email protected] ~]# ll
total 36
-rw-r--r-- 1 root root 25214 Mar 25 2016 favicon.ico
-rw-r--r-- 1 root root 4540 May 29 2017 T1OjaVFl4dXXa.JOZB-114-114.png
[[email protected] ~]#
[[email protected] ~]#
2>.编辑子配置文件
[[email protected] ~]# cat /yinzhengjie/softwares/nginx/conf.d/https.conf #我们把京东的logo放在虚拟主机为"www.yinzhengjie.org.cn"中
server {
listen 80;
listen 443 ssl;
server_name www.yinzhengjie.org.cn;
location / {
root /yinzhengjie/data/web/nginx/static;
index index.html;
}
location = /favicon.ico {
root /yinzhengjie/data/web/nginx/images/jd;
}
}
[[email protected] ~]#
[[email protected] ~]# nginx -t
nginx: the configuration file /yinzhengjie/softwares/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /yinzhengjie/softwares/nginx/conf/nginx.conf test is successful
[[email protected] ~]#
[[email protected] ~]# cat /yinzhengjie/softwares/nginx/conf.d/mobile.conf #我们将淘宝下载的logo放在虚拟主机为"mobile.yinzhengjie.org.cn"中
server {
listen 80;
listen 443 ssl;
server_name mobile.yinzhengjie.org.cn;
ssl_certificate /yinzhengjie/softwares/nginx/certs/mobile.yinzhengjie.org.cn.crt;
ssl_certificate_key /yinzhengjie/softwares/nginx/certs/mobile.yinzhengjie.org.cn.key;
ssl_session_cache shared:sslcache:20m;
ssl_session_timeout 10m;
location / {
root /yinzhengjie/data/web/nginx/mobile;
index index.html;
}
location /favicon.ico {
root /yinzhengjie/data/web/nginx/images/taobao;
}
}
[[email protected] ~]#
[[email protected] ~]# nginx -t
nginx: the configuration file /yinzhengjie/softwares/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /yinzhengjie/softwares/nginx/conf/nginx.conf test is successful
[[email protected] ~]#
3>.将下载的图片放在指定路径中
[[email protected] ~]# mkdir -pv /yinzhengjie/data/web/nginx/images/{jd,taobao{
mkdir: created directory ‘/yinzhengjie/data/web/nginx/images’
mkdir: created directory ‘/yinzhengjie/data/web/nginx/images/jd’
mkdir: created directory ‘/yinzhengjie/data/web/nginx/images/taobao’
[[email protected] ~]#
[[email protected] ~]# ll
total 36
-rw-r--r-- 1 root root 25214 Mar 25 2016 favicon.ico
-rw-r--r-- 1 root root 4540 May 29 2017 T1OjaVFl4dXXa.JOZB-114-114.png
[[email protected] ~]#
[[email protected] ~]# mv favicon.ico /yinzhengjie/data/web/nginx/images/jd/
[[email protected] ~]#
[[email protected] ~]# mv T1OjaVFl4dXXa.JOZB-114-114.png /yinzhengjie/data/web/nginx/images/taobao/favicon.ico
[[email protected] ~]#
[[email protected] ~]# ll
total 0
[[email protected] ~]#
[[email protected] ~]# ll /yinzhengjie/data/web/nginx/images/ -R
/yinzhengjie/data/web/nginx/images/:
total 0
drwxr-xr-x 2 root root 25 Dec 22 12:46 jd
drwxr-xr-x 2 root root 25 Dec 22 12:47 taobao
/yinzhengjie/data/web/nginx/images/jd:
total 28
-rw-r--r-- 1 root root 25214 Mar 25 2016 favicon.ico
/yinzhengjie/data/web/nginx/images/taobao:
total 8
-rw-r--r-- 1 root root 4540 May 29 2017 favicon.ico
[[email protected] ~]#
[[email protected] ~]#
4>.重新加载nginx的配置文件
[[email protected] ~]# netstat -untalp | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 12283/nginx: master tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 12283/nginx: master [[email protected] ~]# [[email protected] ~]# ps -ef | grep nginx | grep -v grep root 12283 1 0 12:30 ? 00:00:00 nginx: master process nginx nginx 12284 12283 0 12:30 ? 00:00:00 nginx: worker process nginx 12285 12283 0 12:30 ? 00:00:00 nginx: worker process nginx 12286 12283 0 12:30 ? 00:00:00 nginx: worker process nginx 12287 12283 0 12:30 ? 00:00:00 nginx: worker process [[email protected] ~]# [[email protected] ~]# nginx -s reload [[email protected] ~]# [[email protected] ~]# ps -ef | grep nginx | grep -v grep root 12283 1 0 12:30 ? 00:00:00 nginx: master process nginx nginx 12406 12283 6 12:52 ? 00:00:00 nginx: worker process nginx 12407 12283 5 12:52 ? 00:00:00 nginx: worker process nginx 12408 12283 5 12:52 ? 00:00:00 nginx: worker process nginx 12409 12283 5 12:52 ? 00:00:00 nginx: worker process [[email protected] ~]# [[email protected] ~]# netstat -untalp | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 12283/nginx: master tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 12283/nginx: master [[email protected] ~]# [[email protected] ~]#
5>.访问虚拟主机"http://www.yinzhengjie.org.cn/",发现logo可以正常显示啦
6>.访问虚拟主机"http://mobile.yinzhengjie.org.cn/",发现logo是可以正常显示啦