Nginx Config for Cors - la directive add_header n'est pas autorisée
Je suis en train d'ajouter de la SCRO directive à mon nginx fichier en tant que simple site HTML statique. (prises à partir d'ici http://enable-cors.org/server_nginx.html)
Y aurait-il une raison pourquoi il faudrait se plaindre de la première add_header directive en disant: "add_header" la directive n'est pas autorisé ici'
Mon fichier de config de l'échantillon
server {
if ($http_origin ~* (https?://[^/]*\.domain\.com(:[0-9]+)?)$) {
set $cors "true";
}
if ($request_method = 'OPTIONS') {
set $cors "${cors}options";
}
if ($request_method = 'GET') {
set $cors "${cors}get";
}
if ($request_method = 'POST') {
set $cors "${cors}post";
}
if ($cors = "trueget") {
add_header 'Access-Control-Allow-Origin' "$http_origin";
add_header 'Access-Control-Allow-Credentials' 'true';
}
if ($cors = "truepost") {
add_header 'Access-Control-Allow-Origin' "$http_origin";
add_header 'Access-Control-Allow-Credentials' 'true';
}
if ($cors = "trueoptions") {
add_header 'Access-Control-Allow-Origin' "$http_origin";
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,Keep-Alive,X-Requested-With,If-Modified-Since';
add_header 'Content-Length' 0;
add_header 'Content-Type' 'text/plain charset=UTF-8';
return 204;
}
listen 8080;
location /{
root /var/www/vhosts/mysite;
}
}
source d'informationauteur MechaStorm
Vous devez vous connecter pour publier un commentaire.
add_header
doit être placé sous soithttp
server
location
ouif in location
bloc.Vous placez en vertu de
if in server
. Déplacer sous l'location
bloc.Source: http://nginx.org/en/docs/http/ngx_http_headers_module.html#add_header
La règle
if in location
peut être contourné par certains trucs, de sorte que vous n'avez pas à écrire/include SCRO règles dans tous leslocation
bloc.Cela fonctionne parce que nginx ne sera pas de retour un en-tête si sa valeur est une chaîne vide.
Tout d'abord, permettez-moi de dire que, après recherche sur le web, j'ai trouvé cette réponse qui surgissent de partout:
location ~* \.(eot|ttf|woff|woff2)$ {
add_header Access-Control-Allow-Origin *;
}
Cependant, j'ai décidé de répondre à cette question avec une réponse distincte comme je l'ai seulement réussi à obtenir cette solution particulière de travail après la mise en environ dix heures de plus à la recherche d'une solution.
Il semble que Nginx ne définit aucune [correct] la police les types MIME par défaut. Par la suite cette tuorial j'ai trouvé que je pouvais ajouter les éléments suivants:
À mon
etc/nginx/mime.types
fichier.Comme l'a dit, la solution ci-dessus a ensuite travaillé. Évidemment, cette réponse est destinée au partage de polices, mais il est certainement la peine de vérifier pour voir si le type MIME est défini (correctement) pour toute autre ressource que vous êtes aux prises avec de trop.
Voici l'article que j'ai écrit pour obtenir les gens ont commencé avec de la SCRO dans Nginx:
nginx contrôle d'accès permettent à l'origine