我使用Nginx进行代理,因为我在同一台计算机和ip地址上有两个Flask Web服务器。我使用Nginx将数据代理到localhost上的不同端口,具体取决于使用的域。出于某种原因,Safari和Firefox在通过Nginx访问服务器时不会自动获取favicon。我试过直接访问Web服务器,跳过Nginx,它显示了favicon。另外,我尝试添加"链接"标记在头部并通过nginx访问服务器,这也有效。为什么它会自动失效?
解决方案:使用Nginx提供文件
我的设置:
www.domain.com文件:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
# Make site accessible from http://localhost/
server_name www.domain.com;
location / {
access_log off;
proxy_pass http://localhost:4000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
blog.domain.com文件:
server {
listen 80;
listen [::]:80;
# Make site accessible from http://localhost/
server_name blog.domain.com;
location / {
access_log off;
proxy_pass http://localhost:4500;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
两个烧瓶服务器都包含这个(它们从静态文件夹中提供favicon.ico):
@app.route('/favicon.ico')
def favicon():
return redirect(url_for('static', filename='favicon.ico'))