我使用的是 Debian 7 和 Nginx 1.2.1。Http 标头模块默认在 Debian 数据包中启用(https://wiki.debian.org/Nginx)。我尝试使用给定的链接(图片托管在它们的一侧)添加指向 Facebook、Twitter 和 Google Plus 帐户的链接。问题是我的浏览器不显示这 3 张图片。我之前使用过 Apache,Header set Access-Control-Allow-Origin "*"
我的站点配置中有模块和说明。
我已迁移至 Nginx,但无法使用以下配置实现等效功能。我还启用了 Naxsi,并使用了一组适用于 wordpress 的通用规则。
没有错误日志,不知道在哪里检查才能找到答案的开头。不幸的是,我在网上找到的都是类似的问题和类似的答案(例如如何在 NGINX 中添加 Access-Control-Allow-Origin?)。
server {
listen 192.0.2.3:80;
server_name blog.example.com;
root /blog/example;
index index.php;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
add_header 'Access-Control-Allow-Origin' '*';
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
if ($request_method !~ ^(GET|POST|HEAD)$ ) {
return 444;
}
# location ~* \.(ttf|ttc|otf|eot|woff)$ {
# add_header 'Access-Control-Allow-Origin' '*';
# }
}
另外,curl -I blog.example.com
显示(缺少跨域的标题指令?)
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 28 May 2015 06:59:26 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.4.39-0+deb7u2
X-Pingback: http://blog.example.com/abc
我需要重新编译 Nginx 以添加一些其他模块,并且想知道 headers more 是否有帮助(https://github.com/openresty/headers-more-nginx-module),虽然 http headers 模块显然应该足够了。
感谢您的支持。
编辑1:
刚刚意识到我完全错了,实际上并没有理解。这是关于从另一个域加载字体。在我的浏览器控制台中,我可以看到我正在从另一个域加载字体(这些字体未显示在我的浏览器中)。没有错误,我得到 http 代码 200,但下载了 0KB(因此没有任何内容显示),当我在新选项卡中打开文件时,我可以下载内容(因此它实际上可用)。